Turinys:
- 1 žingsnis: sukurkite IR imtuvo grandinę
- 2 veiksmas: prijunkite servo, stulpelį ir telefono laikiklį
- 3 žingsnis: Prijunkite skystųjų kristalų ekraną, kad būtų rodomas servo nuskaitymas
- 4 veiksmas: naudokite kodą ir pridėtas bibliotekas, kad programuotumėte „Arduino“
- 5 veiksmas: prijunkite norimą maitinimo šaltinį prie „Arduino“ir naudokite nuotolinio valdymo pultą, kad pasuktumėte laikiklį
- 6 veiksmas: perskaitykite šį šaltinio kodo paaiškinimą
- 7 veiksmas: pagalbos ieškokite mano „YouTube“vaizdo įraše
Video: Sukamas telefono laikiklis: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Šis nurodymas buvo sukurtas vykdant Pietų Floridos universiteto „Makecourse“projekto reikalavimą (www.makecourse.com).
Norite sukurti besisukantį telefono laikiklį, kad galėtumėte žiūrėti savo telefono turinį vertikaliai arba horizontaliai, jo nelaikydami? Tada nežiūrėkite toliau.
Norėdami sukurti šį projektą, jums reikės:
- „Arduino“mikrovaldiklis ir IDE
- USB kabelis kodui įkelti
- Bandomoji Lenta
- jungiamieji laidai
- LCD ekranas
- Servo
- Kolona, kurią galima pritvirtinti prie servo
- IR nuotolinio valdymo pultas
- IR imtuvas
- 10k omų rezistorius
- „Kenu Airframe+ Phone Clip“(ar kažkas, kad telefonas būtų laikomas vietoje)
- 9 V baterija nešiojamam maitinimui arba tiesiog USB maitinamas „Arduino“
1 žingsnis: sukurkite IR imtuvo grandinę
Pirma, šokinėkite GND ir +5 V nuo „Arduino“prie maitinimo bėgių ant savo duonos lentos. Tada peršokite savo 10 kΩ rezistorių nuo +5 V maitinimo šaltinio į IR imtuvo fototransistoriaus išvesties kaištį. Tada naudokite trumpiklį, kad prisijungtumėte prie 11 „Arduino“kaiščio iš IR imtuvo išvesties kaiščio. Tada naudokite du trumpiklius, kad nusiųstumėte įžeminimą ir +5 V į atitinkamus IR imtuvo kaiščius. Aukščiau esančioje schemoje pavaizduotas RC filtras nėra būtinas. Galiausiai nepadariau schemos, parodytos šiame žingsnyje, o jos šaltinis yra paveikslėlyje.
2 veiksmas: prijunkite servo, stulpelį ir telefono laikiklį
Dabar naudokite du trumpiklius laidus, kad šokinėtumėte nuo žemės ir +5 V duonos lentos maitinimo bėgių į atitinkamai rudus ir raudonus servo laidus. Tada naudokite vieną jungiamąjį laidą, kad pritvirtintumėte 9 „Arduino“kaištį prie oranžinės servo vielos.
Tada pritvirtinkite stulpelį prie servo galvos, kaip parodyta antrame paveikslėlyje.
Galiausiai prie stulpelio pritvirtinkite ką nors, kas laikytų telefoną, pvz., „Kenu Airframe+“, kaip parodyta trečiame paveikslėlyje.
3 žingsnis: Prijunkite skystųjų kristalų ekraną, kad būtų rodomas servo nuskaitymas
Peršokite žemę ir +5 V nuo savo duonos lentos maitinimo bėgių iki atitinkamų LCD ekrano kaiščių. Be to, perkelkite SDA ir SCL kaiščius iš LCD į „Ardiuno“. „Arduino“SDA ir SCL kaiščius galima atpažinti iš „Arduino“plokštės galo ir yra du kaiščiai virš AREF ir įžeminimo virš 13 kaiščio. SCL kaištis yra aukščiausias. Tai leidžia LCD ekranui nuskaityti esamą servo padėtį.
4 veiksmas: naudokite kodą ir pridėtas bibliotekas, kad programuotumėte „Arduino“
Atsisiųskite failą RotatingMountCode.zip. Įdiekite „Arduino IDE“ir išpakuokite atsisiųstą failą į „Documents / Arduino“. Būtinai nukopijuokite mano eskizų ir bibliotekų aplanko turinį į eskizų ir bibliotekų aplanką. Atidarykite „ServoIRandLCD“eskizą ir įkelkite jį į „Arduino“.
Žr. Vėlesnius kodo paaiškinimo veiksmus.
5 veiksmas: prijunkite norimą maitinimo šaltinį prie „Arduino“ir naudokite nuotolinio valdymo pultą, kad pasuktumėte laikiklį
Palikite „Arduino“prijungtą prie kompiuterio arba atjunkite jį nuo kompiuterio ir naudokite 9 V bateriją, kad „Arduino“būtų tiekiama nuolatinė srovė. Galiausiai naudokite pigų IR nuotolinio valdymo pultą, kad valdytumėte servo sistemą, taigi ir telefono laikiklio padėtį!
Skaičius 1 nuotolinio valdymo pulte turėtų nustatyti servo padėtį 0 laipsnių, skaičius 2 - 90 laipsnių, o skaičius 3 - 180 laipsnių. Tuo tarpu nuotolinio valdymo pulto mygtukai + ir - turėtų atitinkamai padidinti arba sumažinti servo kampą 1 laipsniu.
Pastaba: Jei naudojate kitokį IR nuotolinio valdymo pultą, nei pavaizduotas čia, gali būti, kad pasikeitė įvairius mygtukus atitinkantys IR kodai. Jei taip, pakeiskite „ServoIRandLCD“eskizą ir naudokite tuos IR kodus.
6 veiksmas: perskaitykite šį šaltinio kodo paaiškinimą
„Arduino“eskizo šaltinio kodą rasite žemiau arba anksčiau pridėtame.zip faile. Reikalingas bibliotekas galima rasti tik anksčiau pridėtame.zip faile 4 veiksme.
Pirmas dalykas, kurį atlieka kodas, yra būtinos bibliotekos, reikalingos visoms eskizo funkcijoms vykdyti. Tada jis skelbia, kad „Arduino“9 kaištis yra PWM palaikantis servo signalo kaištis. Tai taip pat daro „Arduino“kaištį 11 kaiščiu, naudojamu IR imtuvui. Tada jis deklaruoja sveiką skaičių kintamąjį, naudojamą servo padėčiai sekti laipsniais, ir iš pradžių nustato 0 laipsnių. Tada jis nedelsdamas parodo reikiamus objektus IRrecv objektui, servo objektui ir „myDisplay“LCD objektui (kuris taip pat sukonfigūruotas toje pačioje eilutėje), kad šie objektai galėtų būti naudojami vėliau.
Tada sąrankos funkcijoje serijinis prievadas paleidžiamas 9600 bitų per sekundę greičiu, todėl, jei pageidaujama, serijinis monitorius gali būti naudojamas norint stebėti servo padėtį. Jis taip pat pritvirtina „myservo“objektą prie 9 kaiščio, paleidžia IR imtuvą ir inicijuoja LCD ekraną.
Pagrindinėje ciklo funkcijoje, kurios korpusas vykdomas tik tuo atveju, jei iš IR imtuvo gaunamas IR perdavimas, IR imtuvas dekoduoja iš IR nuotolinio valdymo pulto jam siunčiamą signalą, naudodamas dekodavimo (& rezultatų) funkciją, o tada, jei teiginiai nustato, kas nustatyti servo režimą priklausomai nuo gautos IR vertės. Rašymo funkcija naudojama norint nustatyti reikiamą servo laipsnį, o skaitymo funkcija - rasti dabartinį servo kampą ir jį padidinti arba sumažinti, jei reikia.
Galiausiai, esamas servo kampas siunčiamas į nuoseklųjį monitorių ir LCD ekraną naudojant funkciją myservo.read (), o pagrindinės kilpos kartojasi neribotą laiką.
Pirminis kodas:
#include // „Arduino“standartinė biblioteka #include // IR biblioteka #include "Wire.h" //Wire.h LCD (kartais reikia) #Include "LiquidCrystal_I2C.h" // LCD biblioteka
#define servopin 9 // tai apibrėžia 9 kaištį kaip kaištį, naudojamą servo valdymo laidui (oranžinė)
int RECV_PIN = 11; // IR fototranzistorius siunčia išvestį į 11 kaištį
int currentAngle = 0; // deklaruoti CurrentAngle sveikų skaičių kintamąjį ir nustatyti 0
IRrecv irrecv (RECV_PIN); // momentinis IR imtuvo objekto dekodavimo_results rezultatai; // momentinis dekodavimo_rezultato objektas. Šis objektas yra atskiras nuo IR imtuvo.
Servo myservo; // Pakartokite servo objektą, pavadintą „myservo“// galima sukurti ne daugiau kaip aštuonis servo objektus
„LiquidCrystal_I2C myDisplay“(0x27, 16, 2); // parodyti LCD objektą ir nustatyti konfigūraciją
void setup () {
Serial.begin (9600); // pradėti nuoseklųjį prievadą
myservo.attach (servopin); // prie servo objekto pritvirtina 9 kaiščio servo
irrecv.enableIRIn (); // paleiskite imtuvą
myDisplay.init (); // inicijuoti LCD
myDisplay.backlight (); // įjungti LCD apšvietimą
}
void loop () {
if (irrecv.decode (& rezultatai)) // jei gautas perdavimas …
{Serial.print („IR vertė gauta:“);
Serial.println (results.value); // gauta rodoma vertė
// interpretuoti gautas komandas… if (results.value == 16724175) // 1 {// kairė myservo.write (0); }
if (results.value == 16718055) // 2 {// vidurinis myservo.write (90); }
if (results.value == 16743045) // 3 {// right myservo.write (180); }
if (results.value == 16754775) //+ {// padidinti currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// Decension currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}
irrecv.resume (); // Gaukite kitą vertę
// Serijinio monitoriaus spausdinimas Serial.print ("Dabartinė servo padėtis:");
Serial.println (myservo.read ()); // tai nuskaito servo padėtį ir siunčia ją į serijinį monitorių
// LCD spausdinimas myDisplay.clear ();
myDisplay.print ("Servo deg.:");
myDisplay.print (myservo.read ());
vėlavimas (200); // uždelsimas, kad servo įjungimas būtų stabilus
}
7 veiksmas: pagalbos ieškokite mano „YouTube“vaizdo įraše
Peržiūrėkite mano neįtrauktą į „YouTube“vaizdo įrašą, kuriame išsamiai aptariamas ir demonstruojamas projektas, jei turite klausimų!
Rekomenduojamas:
Telefono laikiklis su nešiojamuoju įkrovikliu: 5 žingsniai
Telefono laikiklis su nešiojamuoju įkrovikliu: Šiame projekte parodysiu, kaip padaryti telefono laikiklį ir nešiojamąjį įkroviklį, kuris tinka jo viduje
ANTiDISTRACTION: išmaniojo telefono laikiklis, padedantis sutelkti dėmesį: 7 žingsniai (su nuotraukomis)
ANTiDISTRACTION: išmaniojo telefono laikiklis, padedantis sutelkti dėmesį: Mūsų ANTiDISTRACTION prietaiso tikslas - nutraukti visų formų ląstelių išsiblaškymą intensyvaus dėmesio metu. Mašina veikia kaip įkrovimo stotelė, ant kurios yra sumontuotas mobilusis įrenginys, kad būtų lengviau nesiblaškyti
Tualetinio popieriaus ritinio telefono laikiklis: 7 žingsniai (su paveikslėliais)
Tualetinio popieriaus ritinio telefono laikiklis: ar jums reikia kažkur laikyti telefoną, kol jis kraunamas, kad jis vis dar būtų vertikalus? Telefono laikiklis yra atsakymas į šį klausimą. Ar aplink jūsų namus guli keli atsarginiai tualetinio popieriaus ritinėliai ir tik šiek tiek kartono? Jei tai padarysite, tada padarysite
Sukamas televizorius: 11 žingsnių (su nuotraukomis)
Sukamasis televizorius: Man patinka būti tingiam. Televizijos žiūrėjimas yra puikus būdas atsiriboti ir būti tingus, bet kaip tai padaryti dar labiau? Gulėdamas jaučiasi gana gerai, bet tada televizorius yra į šoną, o tai sujaukia mano tingų mojo. Jei tik būtų būdas tai padaryti
Rankomis sukamas žibintuvėlis „Mod Plus Joule Thief“: 5 žingsniai
Rankinis sukamasis žibintuvėlis „Mod Plus Joule Thief“: aš turiu keletą rankiniu būdu sukamų žibintuvėlių, ir aš niekada nebuvau patenkintas jų našumu. Kai aš juos gavau šviežiai iš dėžutės, jie puikiai dirbo. Tačiau kai jų baterijos išsikrovė, buvo per daug varginantis įkrauti baterijas rankiniu būdu