Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Krok 1: Diely a nástroje
Diely: ~ 2 x Servomotory - miestny obchod s elektronikou ~ 4 x LDR's - miestny obchod s elektronikou ~ 4 x 10 k rezistorov - miestny obchod s elektronikou ~ Arduino Uno - Sparkfun.com ~ 2 x 50 k variabilný odpor - miestny obchod s elektronikou Nástroje: ~ spájkovačka - Sparkfun.com ~ Solder Wire - Sparkfun.com ~ Jumper Wires - Sparkfun.com ~ Protoboard - Local Electronics Store Všetky diely vás budú stáť menej ako 30 $ (bez arduina a všetkých nástrojov)
Krok 2: Vybudujte obvod
Okruh je veľmi jednoduchý a pripojte štyri LDR k analógovým kolíkom 0, 1, 2 a 3 cez odpor 10k. Pripojte dve servá k digitálnym pinom 9 a 10. Pripojte dva variabilné odpory k analógovým kolíkom 4 a 5. a Pozrite sa na obrázky, ktoré skutočne pomáhajú. Pozrite si posledný obrázok schémy zapojenia (môže to byť to najhoršie, čo ste kedy videli).
Krok 3: Zostavte zostavu senzora
Na zostavenie zostavy senzora vezmite dva obdĺžnikové kusy lepenky, odrežte strednú časť prvého kusu lepenky. Prostredníctvom druhého kusa lepenky prestrihnite krátku štrbinu, potom ich oba pretnite a pekne zafixujte páska. Malo by to vyzerať ako 3D kríž so 4 sekciami … Do týchto štyroch častí kríža musíme umiestniť naše štyri LDR. Pozrite sa na obrázky, ktoré skutočne pomáhajú.
Krok 4: Nastavte to
Nájdite základňu (v mojom prípade fľašu Nescafe) a prilepte k nej päsťové servo a potom k rotoru prvého serva pripojte druhé servo. K rotoru druhého serva pripojte zostavu senzora, ktorú sme vyrobili predtým. Na otestovanie robota vyberte ho na slnko a automaticky by sa mal zarovnať k slnku. V interiéri sa vyrovná s najjasnejším zdrojom svetla v miestnosti. Pozrite sa na obrázky, ktoré skutočne pomáhajú.
Krok 5: Kód
Tu je kód pre váš solárny sledovací robot: #include // include Servo library Servo horizontal; // horizontálne servo int servoh = 90; // stojan horizontálne servo Servo vertikálne; // zvisle servo int servov = 90; // vertikálne servo // // zapojenie pinov LDR // name = analogpin; int ldrlt = 0; // LDR vľavo hore int ldrrt = 1; // LDR top rigt int ldrld = 2; // LDR dole vľavo int ldrrd = 3; // ldr down rigt void setup () {Serial.begin (9600); // pripojenia servo // name.attacht (pin); horizontal.attach (9); vertical.attach (10); } void loop () {int lt = analogRead (ldrlt); // vľavo hore int rt = analogRead (ldrrt); // vpravo hore int ld = analogRead (ldrld); // vľavo dole int rd = analogRead (ldrrd); // down rigt int dtime = analogRead (4)/20; // čítanie potenciometrov int tol = analogRead (5)/4; int avt = (lt + rt) / 2; // priemerná hodnota top int avd = (ld + rd) / 2; // priemerná hodnota nadol int avl = (lt + ld) / 2; // priemerná hodnota vľavo int avr = (rt + rd) / 2; // priemerná hodnota vpravo int dvert = avt - avd; // kontrola rozdielu hore a dole int dhoriz = avl - avr; // skontroluje rozdiel vľavo a vpravo, ak (-1*tol> dvert || dvert> tol) // skontroluje, či je rozdiel v tolerancii else zmeniť zvislý uhol {if (avt> avd) {servov = ++ servov; if (servov> 180) {servov = 180; }} else if (avt <avd) {servov = --servov; if (servov <0) {servov = 0; }} vertical.write (servov); } if (-1*tol> dhoriz || dhoriz> tol) // check if diffarence is in the tolerance else change horizontal angle {if (avl> avr) {servoh = --servoh; if (servoh <0) {servoh = 0; }} else if (avl <avr) {servoh = ++ servoh; if (servoh> 180) {servoh = 180; }} else if (avl = avr) {// nič} horizontal.write (servoh); } oneskorenie (dtime); }
Krok 6: Hotovo
Dúfam, že tento projekt inšpiruje ďalšie experimentovanie. Doska Arduino je neuveriteľne univerzálna, lacná a dostupná pre všetkých fanúšikov. Toto je len jeden z mnohých jednoduchých projektov, ktoré je možné vytvoriť pomocou arduina. Pokračujte v premýšľaní!. Nezabudnite sledovať ďalšie postupovanie. V prípade akýchkoľvek otázok ma kontaktujte tu, môj e-mail ID [email protected]