2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Pozdravljeni vsi skupaj! to je moj projekt za drsnik za fotoaparat DIY, imel sem težko obdobje z mojim, vendar sem prepričan, da če boste več pozornosti namenili podrobnostim, bo delovalo!
teoretično bi to moralo v celoti delovati
če se odločite za to, upam, da vam bo všeč!
Korak: Zberite materiale
Elektronski materiali
- Arduino
- dva 360 servomotorja
- deska za kruh
- upori
- gumbi (po možnosti 3)
Gradbeni materiali
- dva kosa penaste plošče
- leseni kosi moznika (lahko kovinski)
- leseni kosi ovalne oblike (glejte uvodno sliko slike).
2. korak: Nastavitev
ta fotografija je shema vezja
sledite temu in vaš projekt bo deloval!
Korak 3: Montaža deske
- najprej priključite pozitivni in ozemljitveni nosilec.
- drugič, povežite dva servomotorja … in imejte dve žici, ki tečeta na ozemljitev in pozitivno, in drugo na pin, ki bi ga izbrali. (upoštevajte, da bo koda imela izbrane zatiče)..
- nato sestavite gumbe … ne pozabite se povezati z zatiči po vaši izbiri, vendar koda ne bo delovala, če ne uporabite izbranih zatičev. Gumbe priključite tudi na ozemljitev.
- in uporabite upor 220.
- nazadnje, če želite uporabiti LCD monitor, boste morali priključiti 2 zatiča na analogni vhod in eno žico na pozitivni priključek.
4. korak: Koda Arduino
#include #include #include
LiquidCrystal_I2C LCD (0x27, 16, 2); // nastavite naslov LCD na 0x27 za 16 -mestni in 2 -vrstni prikaz
Servo servolevo; // Definiraj levi servo Servo servoRight; // Določite desni servo
const int startbut = 8; // pin za startbut (startbutton) const int forwardbut = 12; // pin za forwardbut (forwardbutton) const int reversebut = 13; // pin za reversebut (reversebutton) int tim = 500; // vrednost zakasnitvenega časa int flag = 0; int count = 0;
char array1 = "dobrodošli"; // niz za tiskanje na LCD ("dobrodošli") char array2 = "potisnite levo = LEVO, desno = DESNO!"; // niz za tiskanje na LCD -zaslonu ("potisnite levo = LEVO, desno = DESNO")
void setup () {servoLeft.attach (10); // levi servo nastavite na digitalni pin 10 servoRight.attach (9); // desni servo nastavite na digitalni zatič 9 servoLeft.write (90); // nastavite servomotorje na 90 stopinj servoRight.write (90); zamuda (100);
// obrne pin na vhode pinMode (startbut, INPUT); // inicializiramo startbut (startbutton) kot vhodni pinMode (reversebut, INPUT); // inicializiramo reversebut (reversebutton) kot vhodni pinMode (forwardbut, INPUT); // inicializiramo forwardbut (forwardbutton) kot vhod
}
void loop () {// Preizkusi gibanja // koda za LCD monitor if (flag == 1 && count == 0) {count = 1; lcd.init (); // inicializiramo lcd lcd.backlight (); // odpremo osvetlitev ozadja
lcd.setCursor (15, 0); // nastavimo kazalec na stolpec 15, vrstica 0 za (int positionCounter1 = 0; positionCounter1 <26; positionCounter1 ++) {lcd.scrollDisplayLeft (); // Pomakne vsebino zaslona za en prostor v levo. lcd.print (matrika1 [števec pozicij1]); // Natisnite sporočilo na LCD. zamuda (tim); // počakajte 250 mikrosekund} lcd.clear (); // Počisti LCD zaslon in postavi kazalec v zgornji levi kot. lcd.setCursor (15, 1); // nastavimo kazalec na stolpec 15, vrstica 1 za (int positionCounter = 0; positionCounter <26; positionCounter ++) {lcd.scrollDisplayLeft (); // Pomakne vsebino zaslona za en prostor v levo. lcd.print (niz2 [števec pozicij]); // Natisnite sporočilo na LCD. zamuda (tim); // počakajte 250 mikrosekund} lcd.clear (); // Počisti LCD zaslon in postavi kazalec v zgornji levi kot. } /////////////////////////////////////////////////////// //////////////////////////////////////////////////////// /////////////////////////////////////////
/preverite, če so gumbi pritisnjeni if (digitalRead (startbut) == 1) {flag = 1; // označi spremenljivko gumba za zagon}
if (flag == 1) {if (digitalRead (reversebut) == HIGH) // pritisnjen reversebut vklopi servo {reverse (); // obratna spremenljivka za reversebutton} else if (digitalRead (forwardbut) == HIGH) // pritisnjeno forwardbut bo vklopilo servo {forward (); // posredovana spremenljivka za forwardbutton} else {stop (); // ustavitev spremenljivke za ustavitev gibanja servomotorjev, ko gumbi niso pritisnjeni}}
}
// Programi gibanja za naprej, nazaj in stop void forward () {// ukaz za naprej servoLeft.write (0); // smer, v kateri servomotorji obračajo servoRight.write (180); } void stop () {// ukaz za ustavitev servoLeft.write (90); // zaustavi oba servomotorja na istem mestu, sicer bi bila v različnih položajih servoRight.write (90); } void reverse () {// ukaz za obrat servoLeft.write (180); // servomotorji se aktivirajo v nasprotni smeri servoRight.write (0); }
tukaj je koda za uspeh! po nastavitvi arduina bi moralo vse delovati! in uživaj!
če ne deluje, se prepričajte, da si oglejte ta navodila in vse preverite!