Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
En dag fant jeg en interessant video på: https://arduinotr.com/cisim/?fbclid=IwAR22rYmiRQQJ0nqAusOLhBj_778gROseej6TUonvbOnAd65A-sl_wnyqrJQ&tdsourcetag=s_pcqq_aiomsg dette er virkelig en god video …
Ved første øyekast føler jeg at det er veldig rart, og da jukset føttene, vet ikke hva som er grunnen til at denne designeren gjorde en så villedende historie … det er umulig med en enkel IR -sensor, eller til og med uten noen kontroller, men bare enkle trioder.
Jeg kjenner ikke fyren og hele historien, jeg prøver bare å klare det selv. Jeg har nettopp laget mitt eget design, med veldig enkle moduler:
- Enhver Arduino -kompatibel kontroller som Maduino
- L298N motordriver
- 3x IR -sensor
- Noen vanlige hoppere
Trinn 1: Obstacle Detection
Det er 3 IR-sensorer som brukes til å oppdage hindringen, og venstre/høyre sensor oppdaget hindringen, den skal roteres mot klokken/anti-klokkeretning, mens den midtre sensoren oppdager, er det helt greit.
Sensoren 3 oppdager om det er noen hindring foran. Kobler signalpinnen til Maduino -inngangspinner, for eksempel Pin2/3/4;
Som programvare kan du enkelt kontrollere sensorens utgangsstatus for å bestemme hva motoren skal gjøre:
hvis (IR1_STA == HIGH & IR2_STA == LOW & IR3_STA == HIGH) // Hvis mellomføleren oppdager hindringen, stopper motoren
{
analogWrite (EN, 0);
Stoppe();
}
hvis (IR1_STA == LOW & IR2_STA == HIGH & IR3_STA == HIGH) // hvis høyre sensor oppdager det hindrende, motoren reverserer med høy hastighet;
{
analogWrite (EN, høy hastighet);
Omvendt();
}
hvis (IR1_STA == LOW & IR2_STA == LOW & IR3_STA == HIGH) // hvis
høyre og midtre sensor oppdager den hindrende, motoren bakover med lav hastighet;
{
analogWrite (EN, lav hastighet);
Omvendt();
}
……
Trinn 2: Motorstyring
Og en motordriver som driver motoren, med høy/lav hastighet, avhenger av sensorstatusen.
Bruk en L298N -modul til å drive motoren, med Maduino pin5/6, og PWM -pin (Maduino Pin9) til L298N Aktiver pin, og drev modulen med 9V:
int EN = 9; // PWM -kontroll
int highspeed = 80; // definere høy hastighet
int lavhastighet = 60; // definere lav hastighet
og deretter kan motorhastigheten styres av:
analogWrite (EN, høy hastighet);
Trinn 3: Installer noe der, en slik hund …
Installer sensorene og motorene, og lag noe på, for meg liker jeg en hund å leke med min 1,5 år gamle datter. Last ned Arduino -koden her … gratis å kontakte meg: [email protected] hvis du har spørsmål