INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
hallo almal! Dit is my projek vir 'n DIY -kamera -skuifbalk; ek het 'n moeilike tyd met myne gehad, maar ek is seker dat as u meer aandag gee aan detail, dit sal werk!
in teorie behoort dit ten volle te werk
as u besluit om dit te doen, hoop ek dat u dit sal geniet!
Stap 1: Versamel materiaal
Elektroniese materiaal
- Arduino
- twee 360 servo's
- broodbord
- weerstande
- knoppies (verkieslik 3)
Boumateriaal
- twee stukke skuimplank
- stukke hout (kan metaal wees)
- ovaalvormige houtstukke (verwys na die intro -prentjie).
Stap 2: Opstel
hierdie foto is die kringdiagram
volg hierdie en u projek sal werk!
Stap 3: Montering van broodbord
- Koppel eerstens positief en gemaal aan die broodbord.
- koppel dan die twee servo's … en laat twee drade op die grond loop en positief is, en nog een met die pen wat u sou kies. (let op die kode bevat die penne wat ek gekies het)..
- monteer dan u knoppies … onthou om aan die penne van u keuse te koppel, maar die kode werk nie as u die penne wat ek gekies het nie gebruik nie. verbind die knoppies ook met die grond.
- en gebruik 'n 220 -weerstand.
- Laastens, as u 'n LCD -monitor wil gebruik, moet u 2 penne aansluit op 'n analoog ingang en een draad op die positiewe aansluiting.
Stap 4: Die Arduino -kode
#include #include #include
LiquidCrystal_I2C lcd (0x27, 16, 2); // stel die LCD -adres in op 0x27 vir 'n skerm van 16 tekens en 2 reëls
Servo servoLinks; // Definieer linker servo Servo servoRight; // Definieer die regte servo
const int startbut = 8; // pen vir startbut (startknoppie) const int forwardbut = 12; // pen vir vorentoe (voorwaartse knoppie) const int reversebut = 13; // pen vir reversebut (reverse -knoppie) int tim = 500; // die waarde van vertragingstyd int vlag = 0; int telling = 0;
char array1 = "welkom"; // die string om op die LCD ("welkom") char array2 = "push left = LEFT, right = RIGHT!"; // die string om op die LCD te druk ("druk links = LINKS, regs = REGS")
ongeldige opstelling () {servoLeft.attach (10); // Stel linker servo op digitale pen 10 servoRight.attach (9); // Stel die regte servo op die digitale pen 9 servoLeft.write (90); // stel servo's op 90 grade servoRight.write (90); vertraging (100);
// draai die pen na insette pinMode (startbut, INPUT); // initialiseer die startbut (startknoppie) as 'n invoer pinMode (reversebut, INPUT); // initialiseer die reversebut (reverse -knoppie) as 'n input pinMode (forwardbut, INPUT); // initialiseer die forwardbut (forward -knoppie) as 'n invoer
}
leegte lus () {// Loop deur bewegingstoetse // kode vir LCD monitor as (flag == 1 && count == 0) {count = 1; lcd.init (); // initialiseer die lcd lcd.backlight (); // maak die agtergrond oop
lcd.setCursor (15, 0); // stel die wyser in kolom 15, reël 0 vir (int positionCounter1 = 0; positionCounter1 <26; positionCounter1 ++) {lcd.scrollDisplayLeft (); // Rol die inhoud van die skerm een spasie na links. lcd.print (array1 [positionCounter1]); // Druk 'n boodskap op die LCD. vertraging (tim); // wag vir 250 mikrosekondes} lcd.clear (); // Maak die LCD-skerm skoon en plaas die wyser in die linker boonste hoek. lcd.setCursor (15, 1); // stel die wyser in kolom 15, reël 1 vir (int positionCounter = 0; positionCounter <26; positionCounter ++) {lcd.scrollDisplayLeft (); // Rol die inhoud van die skerm een spasie na links. lcd.print (array2 [positionCounter]); // Druk 'n boodskap op die LCD. vertraging (tim); // wag vir 250 mikrosekondes} lcd.clear (); // Maak die LCD-skerm skoon en plaas die wyser in die linker boonste hoek. }//////////////////////////////////////////// //////////////////////////////////////////////////// ///////////////////////////////////////////
/kyk of knoppies ingedruk is as (digitalRead (startbut) == 1) {flag = 1; // vlag veranderlike vir knoppie om te begin}
if (flag == 1) {if (digitalRead (reversebut) == HOOG) // reversebut ingedruk sal 'n servo aanskakel {reverse (); // omgekeerde veranderlike vir terugknoppie} anders as (digitalRead (forwardbut) == HOOG) // vorentoe, maar ingedruk, sal 'n servo {forward () aanskakel; // voorwaartse veranderlike vir voorwaartse knoppie} anders {stop (); // stop veranderlike om die beweging van servo's te stop as die knoppies nie ingedruk word nie}}
}
// Bewegingsroetines vir vorentoe, agteruit en stop van leemte vorentoe () {// opdrag opdrag servoLeft.write (0); // rigting waarin servo's servoRight.write draai (180); } leegte stop () {// stop opdrag servoLeft.write (90); // stop beide servo's op dieselfde plek, anders sou hulle in verskillende posisies wees servoRight.write (90); } void reverse () {// reverse command servoLeft.write (180); // servo's aktiveer in teenoorgestelde rigting servoRight.write (0); }
hier is die kode vir sukses! nadat u u arduino opgestel het, behoort alles te werk! en geniet!
As dit nie werk nie, kyk dan terug na hierdie instruksies en kyk na alles!