2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Jednoho dne jsem našel zajímavé video na adrese: https://arduinotr.com/cisim/?fbclid=IwAR22rYmiRQQJ0nqAusOLhBj_778gROseej6TUonvbOnAd65A-sl_wnyqrJQ&tdsourcetag=s_pcqq_aiomsg toto je opravdu dobré …
Na první pohled mi to připadá opravdu zvláštní, a pak nohy podváděly, nevím, co je hlavním důvodem, proč tento designér vytvořil tak zavádějící příběh … je to nemožné pomocí jednoduchého IR senzoru, nebo dokonce bez jakéhokoli ovladače, ale pouze jednoduchých triod.
Neznám toho chlapa a celý příběh, jen se to snažím udělat sám. Právě jsem vytvořil svůj vlastní design s velmi jednoduchými moduly:
- Jakýkoli ovladač kompatibilní s Arduino, jako je Maduino
- Ovladač motoru L298N
- 3x IR senzor
- Některé běžné propojky
Krok 1: Detekce překážek
K detekci překážky jsou použity 3 infračervené senzory a levý/pravý senzor detekoval překážku, měl by být otočen ve směru hodin/proti směru hodinových ručiček, zatímco střední senzor detekoval vše v pořádku.
Senzor 3 detekuje, zda je vepředu nějaká překážka. Připojuje signální pin ke vstupním pinům Maduino, jako je Pin2/3/4;
Jako software jednoduše zkontrolujte stav výstupu snímače a rozhodněte, co má motor dělat:
if (IR1_STA == HIGH & IR2_STA == LOW & IR3_STA == HIGH) // Pokud středový snímač detekuje překážku, motor se zastaví
{
analogWrite (EN, 0);
Stop();
}
if (IR1_STA == NÍZKÁ & IR2_STA == VYSOKÁ & IR3_STA == VYSOKÁ) // pokud pravý snímač detekuje překážku, zpátečka motoru vysokou rychlostí;
{
analogWrite (EN, vysoká rychlost);
Zvrátit();
}
if (IR1_STA == LOW & IR2_STA == LOW & IR3_STA == HIGH) // pokud
pravý a střední senzor detekují překážky, zpátečku motoru s nízkou rychlostí;
{
analogWrite (EN, nízká rychlost);
Zvrátit();
}
……
Krok 2: Řízení motoru
A řidič motoru, který řídí motor s vysokou/nízkou rychlostí, závisí na stavu senzoru.
Použití modulu L298N k pohonu motoru s pinem Maduino pin5/6 a pinem PWM (Maduino Pin9) na pin L298N Enable a napájení modulu 9V:
int EN = 9; // PWM ovládání
int highspeed = 80; // definuje vysokou rychlost
int lowspeed = 60; // definujte nízkou rychlost
a poté lze otáčky motoru ovládat pomocí:
analogWrite (EN, vysoká rychlost);
Krok 3: Nainstalujte si tam něco, takový pes…
Nainstalujte senzory a motory a vytvořte něco, pro mě mám rád psa, který si hraje s mojí 1,5letou dcerou. Stáhněte si kód Arduino zde…. Zdarma mě kontaktujte: [email protected] v případě jakýchkoli dotazů