Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Pershendetje te gjitheve! ky është projekti im për një rrëshqitës të kamerës DIY, kam pasur një kohë të vështirë me timen, por jam i sigurt nëse i kushtoni më shumë vëmendje detajeve do të funksionojë!
në teori, kjo duhet të funksionojë plotësisht
nëse zgjidhni ta bëni këtë, shpresoj që ta shijoni!
Hapi 1: Mblidhni materialet tuaja
Materiale elektronike
- Arduino
- dy 360 servos
- dërrasë buke
- rezistencat
- butona (mundësisht 3)
Materiale ndërtimi
- dy pjesë të bordit të shkumës
- copa druri të kunjit (mund të jenë metal)
- copa druri në formë ovale (referojuni figurës hyrëse të figurës).
Hapi 2: Konfiguro
kjo foto është diagrami i qarkut
ndiqni këtë dhe projekti juaj do të funksionojë!
Hapi 3: Montimi i Breadboard
- para së gjithash lidhni pozitiv dhe të bluar me tabelën e bukës.
- së dyti lidhni dy servos… dhe keni dy tela që punojnë në tokë dhe pozitive, dhe një tjetër në kunjin që ju do të zgjidhni. (vini re se kodi do të ketë kunjat që kam zgjedhur)..
- pastaj mblidhni butonat tuaj … mos harroni të lidheni me kunjat e zgjedhjes suaj, por kodi nuk do të funksionojë nëse nuk përdorni kunjat që kam zgjedhur. lidhni butonat me tokën gjithashtu.
- dhe përdorni një rezistencë 220.
- së fundi, nëse dëshironi të përdorni një monitor LCD do t'ju duhet të lidhni 2 kunja me hyrjen analoge dhe një tel me terminalin pozitiv.
Hapi 4: Kodi Arduino
#përfshi #përfshi #përfshi
LiquidCrystal_I2C LCD (0x27, 16, 2); // vendosni adresën LCD në 0x27 për një ekran me 16 karaktere dhe 2 rreshta
Servo servoLeft; // Përcaktoni servo majtë Servo servoRight; // Përcaktoni servo të drejtë
const int startbut = 8; // pin për startbut (startbutton) const int forwardbut = 12; // pin për forwardbut (forwardbutton) const int anasjelltas = 13; // pin për anën e kundërt (butonin e kundërt) int tim = 500; // vlera e kohës së vonesës int flag = 0; int numërimi = 0;
array array1 = "mirëseardhje"; // vargu për tu printuar në LCD ("mirëseardhje") array2 char = "shty majtas = Majtas, djathtas = Djathtas!"; // vargu për tu printuar në LCD ("shty majtas = Majtas, djathtas = Djathtas")
void setup () {servoLeft.attach (10); // Vendosni servo -n e majtë në pinin dixhital 10 servoRight.attach (9); // Vendosni servo -n e djathtë në pinin dixhital 9 servoLeft.write (90); // vendosni servos në 90 gradë servoRight.write (90); vonesë (100);
// e kthen pinin në hyrje pinMode (startbut, INPUT); // inicializoni startbut (startbutton) si një pinMode hyrëse (anasjelltas, INPUT); // inicimi i kundërt (butoni i kundërt) si një pinMode hyrëse (përpara, por INPUT); // inicializoni butonin përpara (butonin përpara) si një hyrje
}
lak void () {// Lak përmes testeve të lëvizjes // kod për monitor LCD nëse (flamur == 1 && numëroni == 0) {numëroni = 1; lcd.init (); // inicializoni lcd lcd.lightlight (); // hap dritën e pasme
lcd.setCursor (15, 0); // vendosni kursorin në kolonën 15, rreshti 0 për (int positionCounter1 = 0; positionCounter1 <26; positionCounter1 ++) {lcd.scrollDisplayLeft (); // Lëviz përmbajtjen e ekranit një hapësirë në të majtë. lcd.print (array1 [positionCounter1]); // Shtypni një mesazh në LCD. vonesë (tim); // prisni për 250 mikrosekonda} lcd.qartë (); // Pastron ekranin LCD dhe pozicionon kursorin në këndin e sipërm të majtë. lcd.setCursor (15, 1); // vendosni kursorin në kolonën 15, rreshti 1 për (int positionCounter = 0; positionCounter <26; positionCounter ++) {lcd.scrollDisplayLeft (); // Lëviz përmbajtjen e ekranit një hapësirë në të majtë. lcd.print (array2 [positionCounter]); // Shtypni një mesazh në LCD. vonesë (tim); // prisni për 250 mikrosekonda} lcd.qartë (); // Pastron ekranin LCD dhe pozicionon kursorin në këndin e sipërm të majtë. } /////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// //////////////////////////////////////
/kontrolloni nëse butonat janë shtypur nëse (digitalRead (startbut) == 1) {flag = 1; // ndryshore e flamurit për fillimin e butonit}
if (flag == 1) {if (digitalRead (reversebut) == HIGH) // reversebut shtypur do të ndizet një servo {reverse (); // ndryshore e kundërt për butonin e kundërt} tjetër nëse (digitalRead (forwardbut) == HIGH) // forwardbut shtypur do të aktivizojë një servo {forward (); // ndryshore përpara për butonin përpara} tjetër {ndalese (); // variabli stop për të ndaluar lëvizjen e servos kur butonat nuk shtypen}}
}
// Rutinat e lëvizjes për përpara, prapa dhe ndaluar zbrazëtinë përpara () {// komanda përpara servoLeft.write (0); // drejtimi në të cilin servos kthejnë servoRight.write (180); } void stop () {// stop komandën servoLeft.write (90); // ndalon të dy servos në të njëjtin vend, përndryshe ata do të ishin në pozicione të ndryshme servoRight.write (90); } void anasjelltas () {// komanda e kundërt servoLeft.write (180); // servos aktivizohen në drejtim të kundërt servoRight.write (0); }
këtu është kodi për suksesin! pasi të keni konfiguruar arduino -në tuaj, gjithçka duhet të funksionojë! dhe kënaquni!
nëse nuk funksionon, sigurohuni që të shikoni prapa në këtë udhëzues dhe të kontrolloni gjithçka!