habe hier eine neue Baustelle aufgemacht. Habe mir günstig ein Arduino besorgt. Soll eventuell in meine nächsten Projekt zum Einsatz kommen. Da muss es aber erst noch mit einem günstigen Rumpf klappen. Sieht aber momentan nicht schlecht aus. Hier mal ein Bildchen. Habe heute auch die ersten Zeilen reingehackt. Also das ACL würde schon mal richtig funktionieren. Positionslampen kann ich aber noch nicht per Schalter ein/ausschalten. Da bin ich gerade dran was noch falsch ist. Dann sollen später Servos in deffinierter Geschwindigkeit auf Position fahren und Scheinwerfer einschalten. Dann noch eventuell ein MP3 Player damit angesteuert werden. Also ne Menge Spielerei. Mal schauen ob es klappt. Kennt sich eigentlich von Euch jemand mit dem Zeug aus?
Hier mal ein Bildchen
Gruß Volle
Abstürze 2014: 1 :-( CH53 Eigenbau mit Rex500 Clone Mechanik Goblin 570 SH60R mit Rex500 Mechanik (im Aufbau)
So, das erste kleine Programm steht und funzt so weit auch. Kann mit Schalter verschiedene Positionslamen ein/ausschalten. ACL blinkt in richtiger Abhänigkeit munter vor sich hin. Der Landescheinwerfer wird mit einem Schalter ausgefahren und schaltet in ausgefahrenem Zustand mit leichter Verzögerung den Scheinwerfer ein. Das Gleiche natürlich auch in die andere Richtung. Jetzt muss ich das mal mit einem Empfänger statt Schalter probieren. Dann könnte man z.B. mit einem Schalter (drei Stellungen) am Sender die ACL einschalten, dann die Positions- beleuchtungen dazuschalten und dann noch den Landescheinwerfer ausfahren und einschalten. Hier mal mein kleines Programmchen falls sich noch jemand dafür interessiert.
#include <Servo.h>
Servo SERVO; int pos = 100; // Variable momentan nicht in Verwendung int var0 = 1000; //Variable zum speichern der Pausenzeit ACL in mSec. int var1 = 100; //Variable zum speichern der Blitzzeit ACL in mSec.
void setup() { pinMode(2, INPUT_PULLUP); // Legt Pin 2 als Eingang für Beleuchtung fest SERVO.attach(3); pinMode(0, OUTPUT); // Legt Pin 0 als Ausgang Positionsbeleuchtung fest pinMode(1, OUTPUT); // Legt Pin 1 als Ausgang Positionsbeleuchtung fest pinMode(8, OUTPUT); // Legt Pin 8 als Ausgang ACL oben fest pinMode(9, OUTPUT); // Legt Pin 9 als Ausgang ACL unten fest pinMode(10, OUTPUT); // Legt Pin 10 als Ausgang für Landescheinwerfer fest
}
void loop() { // Loop starten // Positionsbeleuchtungen einschalten,
Habe mir für mein nächstes Projekt jetzt mal eine Platine die direkt auf das Arduino passt gelötet. Heute habe ich mal ein Testprogramm drüberlaufen lassen und es Funzt alles 1A. Mit den drei Eingängen (Schalter oder Sendereingang) kann auf drei Servoausgänge, drei Relaisausgänge und sieben LED Abgänge mit jeweils bis zu 1A Ausgangsstrom zugegriffen werden. Dann klappt es auch mit 3W LEDs als ACL Blitzlichter. Genau das, was ich für meinen nächsten Scaler benötige Hier sollen ja auch wieder einige Funktionen inkl. Soundmodul zum Einsatz kommen. Das Soundmodul habe ich auch schon mal angeschlossen und eine startende Turbine laufen lassen. Abartig laut das Teil. Obwohl es nur 15 Euro inkl. 2x10W Versärker onboard gekostet hat. Die genaue Ansteuerung muss ich mir noch überlegen. Ist aber eigentlich kein Ding.
Hier mal ein Bild von meinem Aufbau. Sieht etwas wild aus ;-)
Habe der Platine noch einen Deckel spendiert. So sieht das gleich viel besser aus.
Hier mal die komplette Schaltung. So funzt das wunderbar. Jetzt muss ich bei Gelegenheit nur noch die restlichen Funktionen programmieren.
Gruß Volle
crazyvolle
hat folgende Bilder an diesen Beitrag angehängt
habe gestern Abend endlich meine Schaltung komplett mit allen Funktionen zum laufen bekommen. Die Schaltung selbst läuft ja schon länger. Ich hatte die letzten beiden Tage aber Probleme meine Signale vom Empfänger auszuwerten um die einzelnen Funktionen per Sender zu schalten. Das Arduino belegt bei Verwendung der seriellen Kommunikation die Pins 0 und 1. Schon doof wenn man dort aber die Empfängersignale auswerten will Und darauf muss man erst mal kommen . So eine Sche**e !
Jetzt blinkt und blitzt mein Heli wie eine Bordelltür und die restlichen Funktionen können über den Sender angesteuert werden Mit ca. 10 Euro kann man sich so ein sehr flexibles System aufbauen. Die Clone des Arduino bekommt man bei ebay ja schon für 5 Euro.
Liste meiner aktuellen Funktionen
- Positionsbeleuchtung und Landescheinwerfer über normalen Schalter am Heli einschalten ( inkl. Servo fahren ) - Doppelblitz ACLs - Wechsellicht Scheinwerfer am Bug - Taster an Sender wählt auf MP3 Player nächsten Titel an - Schalter an Sender (drei Stellungen) schaltet später Zusatzfunktionen Winde, Lasthaken oder Wasserpumpe für Löschtank
Hier mal mein aktueller Scatch. Eventuell kann sich ja noch jemand was abkupfern. Wer sich mit der Programmierung eines Arduino auskennt lacht vermutlich darüber. Aber als Newbie ist das nicht ganz einfach. Jedenfalls lassen sich mit einem solchen Board relativ komfortabel viele individuelle Funktionen realisieren. Schon eine geile Sache.
Programm Bell UH-1H RAVEN 3
#include <Servo.h>
Servo SERVO1; Servo SERVO2; Servo SERVO3; int Kanal7; // Wert Eingang Kanal7 von Sender int Kanal8; // Wert Eingang Kanal8 von Sender
void setup() {
pinMode(0, OUTPUT); // Legt OUT 0 als Ausgang Leiste Pin7 ACL Unten fest > Blinkfrequenz pinMode(1, INPUT_PULLUP); // Legt IN 1 als Eingang Kanal 7 von Sender Soundmodul fest >> Auf Platine Input 1 pinMode(2, INPUT_PULLUP); // Legt IN 2 als Eingang Kanal 8 von Sender Wassertank fest >> Auf Platine Input 2 pinMode(3, INPUT_PULLUP); // Legt IN 3 als Eingang Schalter fest >> Auf Platine Input 3 pinMode(4, OUTPUT); // Legt OUT 4 als Ausgang Leiste Pin 6 ACL Oben fest > Blinkfrequenz pinMode(5, OUTPUT); // Legt OUT 5 als Ausgang Leiste Pin 5 Scheinwerfer Unten rechts fest pinMode(6, OUTPUT); // Legt OUT 6 als Ausgang Leiste Pin 4 Scheinwerfer Unten links fest pinMode(7, OUTPUT); // Legt OUT 7 als Ausgang Leiste Pin 1 bis 3 Landescheinwerfer und Positionslampen fest pinMode(8, OUTPUT); // Legt OUT 8 als Ausgang Relais 1 fest > Motor Wasserpumpe Ein SERVO1.attach(9); // Legt PWM OUT 9 für das Servo des Landescheinwerfers fest. SERVO2.attach(10); // Legt PWM OUT 10 für das Servo des Lasthaken fest. SERVO3.attach(11); // Legt PWM OUT 11 für das Servo des Winde fest. pinMode(12, OUTPUT); // Legt OUT 12 als Ausgang Relais 2 fest > Vorwärts MP3 Player pinMode(13, OUTPUT); // Legt OUT 13 als Ausgang Relais 3 fest > Play MP3 Player //Serial.begin(9600); //Ausgeblendet da der serielle Monitor in aktiviertem Zustand Pin 0 und 1 belegt }
void loop() { // Loop starten
// Positionsbeleuchtungen einschalten
if (digitalRead(3) == LOW) { digitalWrite(7,HIGH); //Schaltet Positionsbeleuchtungen und Landescheinwerfer ein >> Pin 1-3 auf Platine } else { digitalWrite(7,LOW); //Schaltet Positionsbeleuchtungen und Landescheinwerfer aus >> Pin 1-3 auf Platine }
// ACL einschalten und blinken lassen
unsigned long time = millis() % 2000; // Zeitachse zum schalten der ACL Beleuchtung
if ((digitalRead(3) == LOW) && ((time <=40 || time >=80 && time <=120 || time >=160 && time <=200))) { // Schaltet Dreifachblitz ACL Unten ein digitalWrite(0, HIGH); } else { digitalWrite(0, LOW); }
if ((digitalRead(3) == LOW) && ((time >=1000 && time <=1040 || time >=1080 && time <=1120 || time >=1160 && time <=1200))) { // Schaltet Dreifachblitz ACL Unten ein digitalWrite(4, HIGH); } else { digitalWrite(4, LOW); }
// Bugscheinwerfer einschalten und blinken lassen mit Schalter Kanal 7 Sender in Mittelstellung
if ((Kanal7 >=1400) && ((time <=800))){ // Schaltet innerhalb der ersten 800ms Bugscheinwerfer Links ein digitalWrite(6, HIGH); // Ausgang Bugscheinwerfer Links } else { digitalWrite(6, LOW); } if ((Kanal7 >=1400) && ((time >=1000 && time <=1800))){ // Schaltet zwischen 2000ms und 2950msBugscheinwerfer Rechts ein digitalWrite(5, HIGH); // Ausgang Bugscheinwerfer Rechts } else { digitalWrite(5, LOW); }
// MP3 Player vorwärts schalten Relais K2
Kanal7 = pulseIn(1, HIGH); //Ließt Eingangssignal am Input 1 Kanal 7 am Sender if (Kanal7 >=1800) { //Wenn Eingangssignal größer 1800 (Schalter ganz oben) Signal ein Titel weiter Schalter SG ganz oben digitalWrite (12,HIGH); //Schaltet Relais K2 am Ausgang 12 Vorwärts am MP3 Player } if (Kanal7 <=1700){ digitalWrite (12,LOW); }
// Wasserpumpe schalten Relais K1
Kanal8 = pulseIn(2, HIGH); //Ließt Eingangssignal am Input 2 Kanal 8 am Sender if (Kanal8 >=1400 && Kanal8 <=1600) { //Wenn Eingangssignal 1500 (Schalter Mittelstellung) Signal Pumpe einschalten digitalWrite (8,HIGH); //Schaltet Relais K1 Wasserpumpe } if (Kanal8 <=1400 || Kanal8 >=1600){ digitalWrite (8,LOW); } // Lasthaken/Klappe Wassertank betätigen if (Kanal8 >=1800) { //Wenn Eingangssignal größer 1800 (Schalter Unten) Klappen mit Servo öffnen SERVO2.write(140); // Servo fährt auf Position 140 Grad Lasthaken/Klappe öffnen } else { SERVO2.write(20); // Servo fährt auf Position 10 Grad Lasthaken/Klappe schließen }
Abstürze 2016: Noch keine :-) CH53 Eigenbau mit Rex500 Clone Mechanik SH60R mit Rex500 Mechanik Goblin 570 um ein bischen rumzuturnen Bell UH1-H RAVEN3 (im Aufbau)
Hi Volle,
Hut ab vor all deinen Talenten! Mir fehlt es allein an Wissen dein Können richtig bewerten zu können. Und daher gibt es für uns Dussels nur die Möglichkeit Komplettsysteme zu verbauen.
Ich schalte von 1 nach 0 und bin raus😂
Gruss Jens
Was man alles kann, merkt man erst, wenn man es macht.
Abstürze 2014: 1 Abstürze 2015: 0 AS 350 (für die Halle;-) T Rex 500 ESP T Rex 550 dfc mit noch nackigen Rumf ;-) Bericht folgt! Rumpf Sikorsky CH-53 Rumpf Sikorsky H34/S-38
also die Bauteile in meinem Plan mit Beschriftung DO4,DO5 usw. sind nur Stecker die ich auf meiner Platine verbaut habe. Die Bezeichnungen z.B. GY sind nur Farbnummerierungen damit ich auf der Platine schneller die Verbindungen finde.
Hier mal ein Beispiel wie die beiden ACLs angeschlossen werden können. Ich habe hier mal einen einzelligen Lipo genommen. Die Datenbank gibt für Spannungsquellen nicht besonders viel her.
Und hier der Scetch. Deine Pausenzeiten habe ich bereits berücksichtigt.
void setup() {
pinMode(3, INPUT_PULLUP); // Legt IN 3 als Eingang Schalter fest. Eingang ist LOW wenn Schalter geschlossen. pinMode(4, OUTPUT); // Legt OUT 4 als Ausgang ACL fest pinMode(5, OUTPUT); // Legt OUT 5 als Ausgang ACL fest
}
void loop() { // Loop starten
// ACL einschalten und blinken lassen
unsigned long time = millis() % 5900; // Zeitachse zum schalten der ACL Beleuchtung
if ((digitalRead(3) == LOW) && ((time <=40 || time >=80 && time <=120 || time >=160 && time <=200))) { // Schaltet Dreifachblitz ACL Unten ein digitalWrite(0, HIGH); } else { digitalWrite(0, LOW); }
if ((digitalRead(3) == LOW) && ((time >=2500 && time <=2540 || time >=2580 && time <=2620 || time >=2660 && time <=2700))) { // Schaltet Dreifachblitz ACL Unten ein digitalWrite(4, HIGH); } else { digitalWrite(4, LOW); }
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen