Tartalomjegyzék:

Forgatható telefontartó: 7 lépés
Forgatható telefontartó: 7 lépés

Videó: Forgatható telefontartó: 7 lépés

Videó: Forgatható telefontartó: 7 lépés
Videó: 🙄Nincs több titok! 🤭🙄 Hasonló tartalmakért iratkozz fel csatornánkra! #pophone #viral #short 2024, Július
Anonim
Forgatható telefontartó
Forgatható telefontartó

Ez az oktatóanyag a Dél -Floridai Egyetem Makecourse (www.makecourse.com) projektkövetelményének teljesítésével jött létre.

Forgatható telefontartót szeretne készíteni, hogy a telefon tartalmát álló vagy fekvő tájolásban is megtekinthesse anélkül, hogy tartania kellene? Akkor ne keressen tovább.

A projekt létrehozásához szüksége lesz:

- Arduino mikrokontroller és IDE

- USB kábel a kód feltöltéséhez

- Kenyeretábla

- Jumper vezetékek

- LCD kijelzö

- Szervó

- A szervóhoz rögzíthető oszlop

- IR távirányító

- IR vevő

- 10 k ohmos ellenállás

- Kenu Airframe+ Phone Clip (vagy valami, ami a telefont a helyén tartja)

- 9 V -os akkumulátor a hordozható áramellátáshoz, vagy csak USB -s Arduino

1. lépés: Építse fel az IR vevő áramkört

Építse fel az IR vevő áramkört
Építse fel az IR vevő áramkört
Építse fel az IR vevő áramkört
Építse fel az IR vevő áramkört

Először ugorjon a GND és a +5V értékről az Arduino -ról a kenyérsütő tápáramára. Ezután ugorja át a 10 k ohmos ellenállását a +5 V tápkábelről az IR vevő fototranzisztor kimeneti tűjére. Ezután csatlakozóhuzal segítségével csatlakozzon az Arduino 11 -es tűjéhez az IR -vevő kimeneti tűjéről. Ezután két áthidaló vezetékkel küldje a földet és +5 V -ot az IR vevő megfelelő csapjaira. A fenti ábrán látható RC szűrő nem szükséges. Végül nem készítettem el az ebben a lépésben bemutatott vázlatot, és a forrása megtalálható a képen.

2. lépés: Csatlakoztassa a szervót, az oszlopot és a telefontartót

Csatlakoztassa a szervót, az oszlopot és a telefontartót
Csatlakoztassa a szervót, az oszlopot és a telefontartót
Csatlakoztassa a szervót, az oszlopot és a telefontartót
Csatlakoztassa a szervót, az oszlopot és a telefontartót
Csatlakoztassa a szervót, az oszlopot és a telefontartót
Csatlakoztassa a szervót, az oszlopot és a telefontartót

Most két áthidaló vezetékkel ugorjon le a talajról, és +5 V -os kenyértábla támasztó sínekről a szervó barna és piros vezetékeire. Ezután egy jumperdrót segítségével rögzítse az Arduino 9 -es csapját a szervó narancssárga vezetékéhez.

Ezután rögzítsen egy oszlopot a szervo fejéhez, ahogy a második képen látható.

Végül rögzítsen valamit a telefon tartásához az oszlophoz, mint például a Kenu Airframe+, ahogy a harmadik képen látható.

3. lépés: Csatlakoztassa az LCD -kijelzőt a szervo -leolvasáshoz

Csatlakoztassa az LCD -kijelzőt a szervo -leolvasáshoz
Csatlakoztassa az LCD -kijelzőt a szervo -leolvasáshoz

Ugrás a talajra és +5 V -ra a kenyérsütő tápegységéről az LCD -kijelző megfelelő csapjaira. Ezenkívül ugorjon az SDA és SCL csapokra az LCD -ről az Ardiuno -ra. Az Arduino SDA és SCL csapjai az Arduino kártya hátuljáról azonosíthatók, és ezek a két érintkező az AREF fölött és a Ground a 13. pin felett. Az SCL csap a legmagasabb. Ez lehetővé teszi, hogy az LCD kijelző leolvassa az aktuális szervo pozíciót.

4. lépés: Használja a kódot és a könyvtárakat az Arduino programozásához

Használja a kódot és a könyvtárakat az Arduino programozásához
Használja a kódot és a könyvtárakat az Arduino programozásához

Töltse le a RotatingMountCode.zip fájlt. Telepítse az Arduino IDE -t, és csomagolja ki a letöltött fájlt a Documents / Arduino mappába. Győződjön meg arról, hogy a vázlataim és könyvtáraim mappa tartalmát a vázlatok és könyvtárak mappába másolja. Nyissa meg a ServoIRandLCD vázlatot, és töltse fel az Arduino -ra.

A kód magyarázatát lásd a későbbi lépésekben.

5. lépés: Csatlakoztassa a kívánt áramforrást az Arduino -hoz, és használja a távirányítót a tartó elforgatásához

Csatlakoztassa a kívánt áramforrást az Arduino -hoz, és használja a távirányítót a tartó forgatásához!
Csatlakoztassa a kívánt áramforrást az Arduino -hoz, és használja a távirányítót a tartó forgatásához!
Csatlakoztassa a kívánt áramforrást az Arduino -hoz, és használja a távirányítót a tartó forgatásához!
Csatlakoztassa a kívánt áramforrást az Arduino -hoz, és használja a távirányítót a tartó forgatásához!

Hagyja az Arduino -t csatlakoztatva a számítógéphez, vagy húzza ki a számítógépből, és használjon 9 V -os akkumulátort, hogy egyenáramot biztosítson az Arduino -nak. Végül használjon olcsó infravörös távirányítót a szervó és ezáltal a telefontartó tájolásának vezérléséhez!

A távirányító 1 -es számának a szervo helyzetét 0 fokra, a 2 -es számot 90 fokra, a 3 -as számot pedig 180 fokra kell állítania. Eközben a távirányító + és - gombjaival növelni vagy csökkenteni kell a szervo szögét 1 fokkal.

Megjegyzés: Ha az itt láthatótól eltérő infravörös távirányítót használ, lehetséges, hogy a különböző gombokhoz tartozó IR -kódok megváltoztak. Ha igen, módosítsa a ServoIRandLCD vázlatot, hogy helyette ezeket az IR -kódokat használja.

6. lépés: Olvassa el ezt a forráskód magyarázatához

Olvassa el ezt a forráskód magyarázatához
Olvassa el ezt a forráskód magyarázatához
Olvassa el ezt a forráskód magyarázatához
Olvassa el ezt a forráskód magyarázatához

Az Arduino vázlat forráskódja alább vagy a korábban csatolt.zip fájlban található. A szükséges könyvtárak csak a korábban csatolt.zip fájlban találhatók a 4. lépésben.

A kód első dolga, hogy tartalmazza a vázlat összes funkciójának futtatásához szükséges könyvtárakat. Ezután az Arduino 9-es tüskéjét a szervó PWM-kompatibilis jelzőcsapjává nyilvánítja. Ezenkívül az Arduino 11 -es tűjét teszi az IR -vevőhöz. Ezután deklarál egy egész változót, amelyet a szervó helyzetének fokokban történő nyomon követésére használ, és kezdetben 0 fokra állítja. Ezután az IRrecv objektumhoz, a szervoobjektumhoz és a myDisplay LCD objektumhoz (amely szintén ugyanabban a sorban van konfigurálva) előkészíti a szükséges objektumokat, így ezeket az objektumokat később is fel lehet használni.

Ezután a beállítási funkcióban a soros port 9600 bit/sec sebességgel indul, így a soros monitor segítségével szükség esetén nyomon követhető a szervo helyzete. Ezenkívül a myservo objektumot a 9 -es tűhöz rögzíti, elindítja az infravörös vevőt, és inicializálja az LCD kijelzőt.

A fő hurok funkcióban, amelynek törzsét csak akkor hajtja végre, ha az infravörös vevőről IR -átvitelt fogad, az IR -vevő dekódolja az IR -távirányítóról neki küldött jelet a dekódolás (& eredmények) függvénnyel, majd ha a kijelentések meghatározzák, hogy mit beállítani a szervót a kapott IR érték függvényében. Az írási funkcióval a szervót a megfelelő fokozatokra állíthatjuk, az olvasási funkcióval pedig a szervó aktuális szögét találhatjuk meg, és szükség szerint növelhetjük vagy csökkenthetjük.

Végül a szervo aktuális szöge a myservo.read () függvény segítségével elküldésre kerül a soros monitorra és az LCD kijelzőre is, és a fő hurkok a végtelenségig ismétlődnek.

Forráskód:

#include // Arduino standard library #include // IR library #include "Wire.h" //Wire.h LCD (néha szükséges) #include "LiquidCrystal_I2C.h" // LCD library

#define servopin 9 // ez határozza meg a 9 -es csapot, mint a szervo vezérlő vezetékhez használt tűt (narancssárga)

int RECV_PIN = 11; // Az IR fototranzisztor kimenetet küld a 11-es tűre

int currentAngle = 0; // deklarálja a currentAngle egész változót, és állítsa 0 -ra

IRrecv irrecv (RECV_PIN); // az infravörös vevő objektumának példányosítása decode_results results; // a decode_results objektum példányosítása. Ez az objektum külön van az infravörös vevőtől.

Szervo myservo; // "myservo" nevű szervo objektum példányosítása // maximum nyolc szervo objektum hozható létre

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // az LCD objektum példányosítása és a konfiguráció beállítása

void setup () {

Sorozat.kezdet (9600); // soros port indítása

myservo.attach (szervopin); // a 9 -es csap szervóját a szervo -objektumhoz rögzíti

irrecv.enableIRIn (); // indítsa el a vevőt

myDisplay.init (); // inicializálja az LCD -t

myDisplay.backlight (); // kapcsolja be az LCD háttérvilágítást

}

void loop () {

if (irrecv.decode (és eredmények)) // ha az átvitel megérkezett…

{Serial.print ("IR érték kapott:");

Serial.println (results.value); // megjelenített érték érkezett

// értelmezze a fogadott parancsokat… if (results.value == 16724175) // 1 {// left myservo.write (0); }

if (results.value == 16718055) // 2 {// középső myservo.write (90); }

if (results.value == 16743045) // 3 {// jobb myservo.write (180); }

if (results.value == 16754775) //+ {// növekvő currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// csökkentés currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv.resume (); // Fogadja el a következő értéket

// Soros monitor nyomtatása Serial.print ("Jelenlegi szervo pozíció:");

Serial.println (myservo.read ()); // ez lekéri a szervo pozíciót és elküldi a soros monitornak

// LCD nyomtatás myDisplay.clear ();

myDisplay.print ("Servo deg.:");

myDisplay.print (myservo.read ());

késleltetés (200); // késleltetés, hogy a szervo működtetése stabil legyen

}

7. lépés: Segítségért nézze meg a Youtube videómat

Tekintse meg a nem nyilvános YouTube -videómat, amely teljes körűen tárgyalja és bemutatja a projektet, ha kérdése van!

Ajánlott: