Inhaltsverzeichnis:

Drehbare Telefonhalterung - Gunook
Drehbare Telefonhalterung - Gunook

Video: Drehbare Telefonhalterung - Gunook

Video: Drehbare Telefonhalterung - Gunook
Video: 2024 TEMU DAN NELER ALDIM| İNDİRİM CODU| DEV KARGO #temu #temuhaul #temufinds 2024, Juli
Anonim
Drehbare Telefonhalterung
Drehbare Telefonhalterung

Dieses instructable wurde in Erfüllung der Projektanforderung des Makecourse an der University of South Florida (www.makecourse.com) erstellt.

Möchten Sie eine drehbare Telefonhalterung herstellen, damit Sie den Inhalt Ihres Telefons im Hoch- oder Querformat anzeigen können, ohne es halten zu müssen? Dann suchen Sie nicht weiter.

Um dieses Projekt zu erstellen, benötigen Sie:

- Arduino-Mikrocontroller und IDE

- USB-Kabel zum Hochladen des Codes

- Steckbrett

- Überbrückungsdrähte

- LCD Bildschirm

- Servo

- Säule, die am Servo befestigt werden kann

- IR-Fernbedienung

- IR-Empfänger

- 10k Ohm Widerstand

- Kenu Airframe + Telefonclip (oder etwas, um das Telefon an Ort und Stelle zu halten)

- 9 V Batterie für tragbare Stromversorgung oder nur USB-betriebenes Arduino

Schritt 1: Bauen Sie die IR-Empfängerschaltung auf

Bauen Sie die IR-Empfängerschaltung auf
Bauen Sie die IR-Empfängerschaltung auf
Bauen Sie die IR-Empfängerschaltung auf
Bauen Sie die IR-Empfängerschaltung auf

Springen Sie zuerst GND und +5V vom Arduino zu den Stromschienen auf Ihrem Steckbrett. Springen Sie dann Ihren 10k-Ohm-Widerstand von der +5V-Stromschiene zum Ausgangspin Ihres IR-Empfänger-Fototransistors. Verwenden Sie als Nächstes ein Überbrückungskabel, um eine Verbindung zu Pin 11 des Arduino vom Ausgangspin des IR-Empfängers herzustellen. Verwenden Sie dann zwei Überbrückungsdrähte, um Masse und +5 V an die entsprechenden Pins des IR-Empfängers zu senden. Der im obigen Schema abgebildete RC-Filter ist nicht erforderlich. Schließlich habe ich den in diesem Schritt gezeigten Schaltplan nicht erstellt, und die Quelle dafür ist im Bild vorhanden.

Schritt 2: Verbinden Sie den Servo, die Säule und den Telefonhalter

Verbinden Sie den Servo, die Säule und den Telefonhalter
Verbinden Sie den Servo, die Säule und den Telefonhalter
Verbinden Sie den Servo, die Säule und den Telefonhalter
Verbinden Sie den Servo, die Säule und den Telefonhalter
Verbinden Sie den Servo, die Säule und den Telefonhalter
Verbinden Sie den Servo, die Säule und den Telefonhalter

Verwenden Sie nun zwei Überbrückungsdrähte, um von Masse und +5 V der Stromschienen des Steckbretts in die braunen bzw. roten Drähte des Servos zu springen. Verwenden Sie dann ein Überbrückungskabel, um Pin 9 des Arduino mit dem orangefarbenen Kabel des Servos zu verbinden.

Befestigen Sie dann eine Säule am Kopf des Servos, wie im zweiten Bild gezeigt.

Befestigen Sie schließlich etwas, um das Telefon an der Säule zu halten, wie die Kenu Airframe +, wie im dritten Bild gezeigt.

Schritt 3: Schließen Sie das LCD-Display für die Servoauslesung an

Schließen Sie das LCD-Display für die Servoanzeige an
Schließen Sie das LCD-Display für die Servoanzeige an

Überspringen Sie Masse und +5 V von den Stromschienen Ihres Steckbretts zu den entsprechenden Pins auf dem LCD-Display. Springen Sie auch die SDA- und SCL-Pins vom LCD auf den Ardiuno. Die SDA- und SCL-Pins des Arduino können von der Rückseite des Arduino-Boards identifiziert werden und sind die beiden Pins über AREF und Masse über Pin 13. Der SCL-Pin ist der höchste. Dadurch kann das LCD-Display die aktuelle Servoposition auslesen.

Schritt 4: Verwenden Sie den Code und die Bibliotheken, die angehängt sind, um das Arduino zu programmieren

Verwenden Sie den Code und die Bibliotheken, die angehängt sind, um das Arduino zu programmieren
Verwenden Sie den Code und die Bibliotheken, die angehängt sind, um das Arduino zu programmieren

Laden Sie die RotatingMountCode.zip-Datei herunter. Installieren Sie die Arduino IDE und entpacken Sie die heruntergeladene Datei in Documents\Arduino. Stellen Sie sicher, dass Sie den Inhalt meines Ordners Skizzen und Bibliotheken in Ihren Ordner Skizzen und Bibliotheken kopieren. Öffnen Sie die ServoIRandLCD-Skizze und laden Sie sie auf Ihr Arduino hoch.

Siehe spätere Schritte für eine Codeerklärung.

Schritt 5: Schließen Sie die gewünschte Stromquelle an Arduino an und verwenden Sie die Fernbedienung, um die Halterung zu drehen

Verbinden Sie die gewünschte Stromquelle mit Arduino und verwenden Sie die Fernbedienung, um die Halterung zu drehen!
Verbinden Sie die gewünschte Stromquelle mit Arduino und verwenden Sie die Fernbedienung, um die Halterung zu drehen!
Verbinden Sie die gewünschte Stromquelle mit Arduino und verwenden Sie die Fernbedienung, um die Halterung zu drehen!
Verbinden Sie die gewünschte Stromquelle mit Arduino und verwenden Sie die Fernbedienung, um die Halterung zu drehen!

Lassen Sie das Arduino entweder an Ihrem Computer angeschlossen oder ziehen Sie es von Ihrem Computer ab und verwenden Sie eine 9-V-Batterie, um das Arduino mit Gleichstrom zu versorgen. Verwenden Sie schließlich eine billige IR-Fernbedienung, um das Servo und damit die Ausrichtung der Telefonhalterung zu steuern!

Die Nummer 1 auf der Fernbedienung sollte die Servoposition auf 0 Grad, die Nummer 2 auf 90 Grad und die Nummer 3 auf 180 Grad einstellen. In der Zwischenzeit sollten die Tasten + und - auf der Fernbedienung den Winkel des Servos um jeweils 1 Grad erhöhen oder verringern.

Hinweis: Wenn Sie eine andere IR-Fernbedienung als die hier abgebildete verwenden, können sich die IR-Codes der verschiedenen Tasten ändern. Wenn dies der Fall ist, ändern Sie die ServoIRandLCD-Skizze, um stattdessen diese IR-Codes zu verwenden.

Schritt 6: Lesen Sie dies für die Erklärung des Quellcodes

Lesen Sie dies für eine Erklärung des Quellcodes
Lesen Sie dies für eine Erklärung des Quellcodes
Lesen Sie dies für eine Erklärung des Quellcodes
Lesen Sie dies für eine Erklärung des Quellcodes

Den Quellcode für die Arduino-Skizze finden Sie unten oder in der zuvor angehängten.zip-Datei. Die benötigten Bibliotheken sind nur in der zuvor angehängten.zip-Datei in Schritt 4 zu finden.

Der Code enthält zunächst die notwendigen Bibliotheken, die zum Ausführen aller Funktionen in der Skizze erforderlich sind. Als nächstes wird Pin 9 auf dem Arduino als PWM-aktivierter Signalpin für das Servo deklariert. Es macht auch Pin 11 auf dem Arduino zum Pin, der für den IR-Empfänger verwendet wird. Als nächstes deklariert es eine Integer-Variable, die verwendet wird, um die Position des Servos in Grad zu verfolgen, und setzt sie anfänglich auf 0 Grad. Dann instanziiert es die benötigten Objekte für ein IRrecv-Objekt, ein Servo-Objekt und myDisplay LCD-Objekt (das auch in derselben Zeile konfiguriert ist), damit diese Objekte später verwendet werden können.

Als nächstes wird in der Setup-Funktion der serielle Port mit 9600 Bit/s gestartet, damit der serielle Monitor verwendet werden kann, um die Position des Servos auf Wunsch zu verfolgen. Es verbindet auch das myservo-Objekt mit Pin 9, startet den IR-Empfänger und initialisiert das LCD-Display.

In der Hauptschleifenfunktion, deren Hauptteil nur ausgeführt wird, wenn eine IR-Übertragung vom IR-Empfänger empfangen wird, decodiert der IR-Empfänger das von der IR-Fernbedienung an ihn gesendete Signal mit der Funktion decode(&results) und dann bestimmen if-Anweisungen, was um den Servo abhängig vom empfangenen IR-Wert einzustellen. Die Schreibfunktion wird verwendet, um den Servo auf die entsprechenden Grade einzustellen, und die Lesefunktion wird verwendet, um den aktuellen Winkel des Servos zu ermitteln und diesen nach Bedarf zu erhöhen oder zu verringern.

Schließlich wird der aktuelle Winkel des Servos mit der Funktion myservo.read() sowohl an den seriellen Monitor als auch an das LCD-Display gesendet, und die Hauptschleifen durchlaufen unbegrenzt.

Quellcode:

#include //Arduino-Standardbibliothek#include //IR-Bibliothek #include "Wire.h" //Wire.h für LCD (manchmal benötigt) #include "LiquidCrystal_I2C.h" //LCD-Bibliothek

#define Servopin 9 // Dies definiert Pin 9 als den Pin, der für das Servosteuerkabel verwendet wird (orange)

int RECV_PIN = 11; // IR-Fototransistor sendet Ausgang an Pin 11

int aktueller Winkel = 0; // Deklariere die Integer-Variable currentAngle und setze sie auf 0

IRrecv irrecv(RECV_PIN); // ein IR-Empfängerobjekt instanziieren decode_results Ergebnisse; //instanziiere ein decode_results-Objekt. Dieses Objekt ist vom IR-Empfänger getrennt.

Servo-Myservo; // ein Servo-Objekt namens 'myservo' instanziieren // Es können maximal acht Servo-Objekte erstellt werden

LiquidCrystal_I2C myDisplay(0x27, 16, 2); // LCD-Objekt instanziieren und Konfiguration einrichten

Leere Einrichtung () {

Serial.begin (9600); // Serielle Schnittstelle starten

myservo.attach(servopin); // befestigt das Servo an Pin 9 an das Servoobjekt

irrecv.enableIRIn(); // den Empfänger starten

myDisplay.init(); // LCD initialisieren

myDisplay.backlight(); // LCD-Hintergrundbeleuchtung einschalten

}

Leere Schleife () {

if (irrecv.decode(&results)) //wenn Übertragung empfangen wurde…

{ Serial.print ("IR-Wert empfangen: ");

Serial.println (results.value); // empfangenen Wert anzeigen

//interpretiere die empfangenen Befehle… if (results.value == 16724175) //{ //links myservo.write(0); }

if (results.value == 16718055) //2 {//middle myservo.write (90); }

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

if (results.value == 16754775) //+ { //Increment currentAngle = myservo.read(); myservo.write (aktueller Winkel + 1); } if (results.value == 16769055) //- {//dekrementiere currentAngle = myservo.read(); myservo.write (aktueller Winkel - 1); } }

irrecv.resume(); //Erhalte den nächsten Wert

// Serieller Monitordruck Serial.print ("Aktuelle Servoposition: ");

Serial.println (myservo.read ()); // Dies ruft die Servoposition ab und sendet sie an den seriellen Monitor

// LCD-Druck myDisplay.clear ();

myDisplay.print("Servograd.: ");

myDisplay.print (myservo.read());

Verzögerung (200); // Verzögerung, um die Servobetätigung stabil zu machen

}

Schritt 7: Sehen Sie sich mein Youtube-Video an, um Hilfe zu erhalten

Sehen Sie sich mein nicht aufgeführtes YouTube-Video an, in dem das Projekt vollständig diskutiert und demonstriert wird, wenn Sie Fragen haben!