Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
zdravo svima! ovo je moj projekt za DIY fotoaparat klizač, bilo mi je teško s mojim, ali siguran sam da ako obratite više pažnje na detalje, to će uspjeti!
u teoriji, ovo bi trebalo u potpunosti funkcionirati
ako se odlučite za ovo, nadam se da ćete uživati!
Korak 1: Prikupite materijale
Elektronski materijali
- Arduino
- dva 360 serva
- daska za hleb
- otpornici
- dugmad (po mogućnosti 3)
Građevinski materijal
- dva komada pjenaste ploče
- drveni komadi tiple (mogu biti metalni)
- drveni ovalni oblici (pogledajte uvodnu sliku sa slike).
Korak 2: Postavljanje
ova fotografija je dijagram kola
slijedite ovo i vaš će projekt uspjeti!
Korak 3: Montaža Breadboard -a
- prije svega povežite pozitivnu masu i masu na matičnu ploču.
- drugo povežite dva servo servera … i vodite dvije žice na masu i pozitivu, a drugu na pin koji biste odabrali. (imajte na umu da će kod imati pinove koje sam odabrao)..
- zatim sastavite gumbe … ne zaboravite se spojiti na pinove po vašem izboru, ali kôd neće raditi ako ne koristite pinove koje sam odabrao. takođe povežite dugmad sa masom.
- i upotrijebite otpornik 220.
- na kraju, ako želite koristiti LCD monitor, morat ćete spojiti 2 pina na analogni ulaz i jednu žicu na pozitivni terminal.
Korak 4: Arduino kod
#include #include #include
LiquidCrystal_I2C LCD (0x27, 16, 2); // postavite LCD adresu na 0x27 za prikaz od 16 znakova i 2 reda
Servo servoLeft; // Definiraj lijevi servo Servo servoRight; // Definirajte 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; // vrijednost vremena kašnjenja int flag = 0; int broj = 0;
char array1 = "dobrodošli"; // niz za štampanje na LCD -u ("dobrodošli") char array2 = "pritisnite lijevo = LIJEVO, desno = DESNO!"; // niz za štampanje na LCD -u ("pritisnite lijevo = LIJEVO, desno = DESNO")
void setup () {servoLeft.attach (10); // Postavite lijevi servo na digitalni pin 10 servoRight.attach (9); // Desni servo postavite na digitalni pin 9 servoLeft.write (90); // postavite servo na 90 stupnjeva servoRight.write (90); kašnjenje (100);
// okreće pin na ulaze pinMode (startbut, INPUT); // inicijalizira startbut (startbutton) kao ulazni pinMode (reversebut, INPUT); // inicijalizira reversebut (reversebutton) kao ulazni pinMode (forwardbut, INPUT); // inicijalizira forwardbut (forwardbutton) kao ulaz
}
void loop () {// Prolaz kroz testove kretanja // kôd za LCD monitor if (flag == 1 && count == 0) {count = 1; lcd.init (); // inicijalizira lcd lcd.backlight (); // otvaranje pozadinskog osvjetljenja
lcd.setCursor (15, 0); // postavljamo kursor na stupac 15, red 0 za (int positionCounter1 = 0; positionCounter1 <26; positionCounter1 ++) {lcd.scrollDisplayLeft (); // Pomicanje sadržaja ekrana za jedan prostor ulijevo. lcd.print (niz1 [pozicijaCounter1]); // Odštampajte poruku na LCD ekranu. kašnjenje (tim); // čekamo 250 mikrosekundi} lcd.clear (); // Briše LCD ekran i postavlja kursor u gornji lijevi kut. lcd.setCursor (15, 1); // postavljamo kursor na stupac 15, red 1 za (int positionCounter = 0; positionCounter <26; positionCounter ++) {lcd.scrollDisplayLeft (); // Pomicanje sadržaja ekrana za jedan prostor ulijevo. lcd.print (niz2 [Brojač pozicija]); // Odštampajte poruku na LCD ekranu. kašnjenje (tim); // čekamo 250 mikrosekundi} lcd.clear (); // Briše LCD ekran i postavlja kursor u gornji lijevi kut. } /////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// //////////////////////////////////////////
/proverite da li su tasteri pritisnuti if (digitalRead (startbut) == 1) {flag = 1; // označava varijablu za dugme za početak}
if (flag == 1) {if (digitalRead (reversebut) == HIGH) // pritisnut reversebut će uključiti servo {reverse (); // obrnuta varijabla za reversebutton} else if (digitalRead (forwardbut) == HIGH) // pritisnuto forwardbut će uključiti servo {forward (); // prosljeđena varijabla za forwardbutton} else {stop (); // zaustavljanje varijable za zaustavljanje kretanja servo -a kada tasteri nisu pritisnuti}}
}
// Rutine kretanja za naprijed, natrag i stop void forward () {// naredba za naprijed servoLeft.write (0); // smjer u kojem servo okreću servoRight.write (180); } void stop () {// naredba za zaustavljanje servoLeft.write (90); // zaustavlja oba serva na istom mjestu, inače bi bili u različitim pozicijama servoRight.write (90); } void reverse () {// naredba za obrnuti servoLeft.write (180); // servo pogoni se aktiviraju u suprotnom smjeru servoRight.write (0); }
evo koda za uspjeh! nakon što postavite vaš arduino sve bi trebalo funkcionirati! i uživajte!
ako ne uspije, svakako pogledajte ovo uputstvo i provjerite sve!