Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Kažkada radau įdomų vaizdo įrašą: https://arduinotr.com/cisim/?fbclid=IwAR22rYmiRQQJ0nqAusOLhBj_778gROseej6TUonvbOnAd65A-sl_wnyqrJQ&tdsourcetag=s_pcqq_ai… video is
Iš pirmo žvilgsnio jaučiu, kad tai tikrai keista, o tada pėdos apgaudinėjamos, nežinau, kas yra priežastis, kodėl šis dizaineris sukūrė tokią klaidinančią istoriją … to neįmanoma padaryti paprastu IR jutikliu arba net be jokio valdiklio, o tik paprastų triodų.
Aš nežinau vaikino ir visos istorijos, aš tiesiog bandau tai padaryti pats. Aš ką tik sukūriau savo dizainą, naudodamas labai paprastus modulius:
- Bet kuris su „Arduino“suderinamas valdiklis, pvz., „Maduino“
- L298N variklio vairuotojas
- 3x IR jutiklis
- Kai kurie paprasti šuolininkai
1 žingsnis: kliūčių aptikimas
Kliūtei aptikti naudojami 3 IR jutikliai, o kairysis/dešinysis jutiklis aptiko kliūtį, ji turėtų būti pasukta laikrodžio/prieš laikrodžio kryptį, o vidurinis jutiklis-viskas gerai.
3 jutiklis nustato, ar nėra kliūčių priekyje. Sujungia signalo kaištį su Maduino įvesties kaiščiais, pvz., Pin2/3/4;
Kaip programinė įranga, tiesiog patikrinkite jutiklio išėjimo būseną ir nuspręskite, ką variklis turėtų daryti:
jei (IR1_STA == HIGH & IR2_STA == LOW & IR3_STA == HIGH) // Jei vidinis jutiklis aptinka kliūtį, variklis sustoja
{
analogWrite (EN, 0);
Sustabdyti();
}
if (IR1_STA == LOW & IR2_STA == HIGH & IR3_STA == HIGH) // jei temperatūros jutiklis aptinka kliūtį, variklis važiuoja dideliu greičiu;
{
analogWrite (EN, didelis greitis);
Atvirkštinis ();
}
if (IR1_STA == LOW & IR2_STA == LOW & IR3_STA == HIGH) // jei
dešinysis ir vidurinis jutiklis aptinka kliūtį, variklis važiuoja lėtai;
{
analogWrite (EN, žemas greitis);
Atvirkštinis ();
}
……
2 žingsnis: variklio valdymas
O variklio vairuotojas, varantis dideliu/mažu greičiu, priklauso nuo jutiklio būsenos.
Varikliui valdyti naudojamas L298N modulis su Maduino kaiščiu 5/6 ir PWM kaiščiu (Maduino kaištis 9) į L298N Įjunkite kaištį ir įjunkite modulį 9 V įtampa:
int EN = 9; // PWM valdymas
int highspeed = 80; // apibrėžti didelį greitį
int lowspeed = 60; // apibrėžti mažą greitį
ir tada variklio greitį galima valdyti:
analogWrite (EN, didelis greitis);
3 žingsnis: įdiekite kažką ten, tokį šunį …
Įdiekite jutiklius ir variklius ir sukurkite ką nors, man patinka šuo, žaidžiantis su mano 1,5 metų dukra. Atsisiųskite „Arduino“kodą čia…. Jei turite klausimų, susisiekite su manimi: [email protected]