Hier der Quellcode:#define LED_unten 7 #define LED_oben 6 #define IR36Khz 5 // TSOP 31236 #define laenge 48 #define time 100000 #include <Servo.h> Servo meinServo; int muster[laenge]; int i = 0; int Servofaktor = 1; int taktPin = 8; // SH_CP int speicherPin = 11; // ST_CP int datenPin = 10; // DS void setup() { pinMode(taktPin, OUTPUT); pinMode(speicherPin, OUTPUT); pinMode(datenPin, OUTPUT); pinMode(LED_unten, OUTPUT); pinMode(LED_oben, OUTPUT); pinMode(IR36Khz, INPUT); digitalWrite(LED_unten, LOW); digitalWrite(LED_oben, LOW); meinServo.attach(9); // Objekt mit Pin 9 verbinden // Serial.begin(9600); setLEDs(B00000001); } void loop() { readRemote(pulseIn(IR36Khz, HIGH, time)); } void readRemote(int pulse1) { i = 0; if (pulse1 > 4000) { boolean pressed = true; int highpulse = pulseIn(IR36Khz, HIGH, time); while ((highpulse < 4000) && (highpulse > 100)){ if (highpulse > 1000) { muster[i++] = 1; } else { muster[i++] = 0; } highpulse = pulseIn(IR36Khz, HIGH, time); } for (i; i < laenge; i++) muster[i] = -1; while (pressed){ getButton(); pressed = (highpulse > 20000) & (pulseIn(IR36Khz, HIGH, time) > 4000); } digitalWrite(LED_unten, LOW); digitalWrite(LED_oben, LOW); } } void getButton(){ unsigned int a = 0; unsigned int b = 0; unsigned int c = 0; for (int i = 0; i < 16; i++) { if (muster[i] == 1) a = a + (1 << i); if (muster[i+16] == 1) b = b + (1 << i); if (muster[i+32] == 1) c = c + (1 << i); } if (a == 57464 && b == 19440 && c == 948) { // Pfeil unten downArrow(); } else if (a == 57464 && b == 18416 && c == 952) { // Pfeil oben upArrow(); } else if (a == 49273 && b == 17392 && c == 956) { // Down Button downButton(); } else if (a == 49273 && b == 16368 && c == 960) { // Up Button upButton(); } else { // Serial.println(a); // Serial.println(b); // Serial.println(c); } } void upButton() { if (Servofaktor < 15) Servofaktor ++; digitalWrite(LED_oben, HIGH); aktualisiereLED(); } void downButton() { if (Servofaktor > 2) Servofaktor --; digitalWrite(LED_unten, HIGH); aktualisiereLED(); } void aktualisiereLED() { switch (Servofaktor) { case 1: setLEDs(B00000001); break; case 2: setLEDs(B00000001); break; case 3: setLEDs(B00000011); break; case 4: setLEDs(B00000011); break; case 5: setLEDs(B00000111); break; case 6: setLEDs(B00000111); break; case 7: setLEDs(B00001111); break; case 8: setLEDs(B00001111); break; case 9: setLEDs(B00011111); break; case 10: setLEDs(B00011111); break; case 11: setLEDs(B00111111); break; case 12: setLEDs(B00111111); break; case 13: setLEDs(B01111111); break; case 14: setLEDs(B01111111); break; case 15: setLEDs(B11111111); break; case 16: setLEDs(B11111111); break; } } void setLEDs(byte bitmuster) { digitalWrite(speicherPin, LOW); shiftOut(datenPin, taktPin, LSBFIRST, bitmuster); digitalWrite(speicherPin, HIGH); } void upArrow() { if (Servoposition > 2) { Servoposition = Servoposition - Servofaktor; if (Servoposition < 1) Servoposition = 1; meinServo.write(Servoposition); //delay(20); } digitalWrite(LED_oben, HIGH); } void downArrow() { if (Servoposition < 180) { Servoposition = Servoposition + Servofaktor; if (Servoposition > 180) Servoposition = 180; meinServo.write(Servoposition); // delay(20); } digitalWrite(LED_unten, HIGH); }
Mein Arduino
Mittwoch, 1. Mai 2013
Servo mit Fernbedienung - Quellcode
Hier der Quellcode zur Ansteuerung des Servos mit der AIWA-Fernbedienung:
Dienstag, 30. April 2013
Servo mit Fernbedienung
Nach längerem Herumprobieren habe ich es nun geschafft, eine alte Fernbedienung zu "decodieren". So wie es in einigen Tutorials beschrieben wurde, hats bei mir nicht funktioniert. Aber jetzt läuft es. Vielleicht werde ich den Sketch für die Fernbedienung auch noch hier posten. Verwendet wurde ein TSOP IR-Empfänger.
Mit der Fernbedienung steuere ich einen Servo an, wobei man auch dessen Geschwindigkeit anpassen kann.
Auf den Servo habe ich eine Platine mit 8 grünen LEDs gepackt, die mit einem 74HC595 angesteuert werden. Diese zeigen die gewählte Geschwindikeit.
Die Löterei hat mal wieder etwas Zeit in Anspruch genommen.
Hier ein paar Bilder und ein Video:



Freitag, 12. April 2013
Erste Lötarbeiten mit RGB-LED
Montag, 18. März 2013
Es macht Spaß
Mittlerweile habe ich ein paar Projekte aus dem Buch von Erik Bartmann nachgebaut und die Zusammenhänge werden klar. Die Programmierung ist (bis jetzt) noch sehr simpel. Anbei ein Bildchen von der 2fachen Porterweiterung. Da kommen schon einige Drähtchen auch dem Steckbrett zusammen!
Als nächstes werde ich mir einen Beschleunigungssensor kaufen. Wahrscheinlich diesen hier:
MPU6050

Montag, 11. März 2013
Löten und Litze
Am Wochenende habe ich mir erst einmal einen Lötkolben und Material gekauft. Der Arduino ist jetzt mit Steckbrett auf einem Holzbrett verschraubt. Jetzt kann es richtig losgehen.
Zuerst mal ein paar Steckverbindungen gelötet. Dann ein Potentiometer und den
9V-Adapter angelötet. Noch dauert es etwas lange, aber Übung macht bekanntlich den Meister.
Eine helfende Hand benötige ich noch.
Das Addon für Eclipse habe ich auch schon installiert, allerdings habe ich darüber noch keinen Sketch auf den Arduino übertragen.

Freitag, 8. März 2013
Der Taster
Donnerstag, 7. März 2013
Arduino LEDs
Abonnieren
Posts (Atom)