Ja moin!
Eigentlich wollte ich mit dem Arduino-System eine zeitgesteuerte Hopfengabe realisieren, bin aber komplett im Bastel- und Forschmodus hängen geblieben…..
Und Tochter hat jetzt den Kosmos Chipz Roboter zu Weihnachten bekommen.
Und da stellen sich mir ein paar Fragen:
Kann man so eine Steuerung auslesen?
Kann man jedes beliebige Bauteil mit Arduino ansprechen oder muss es „kompatibel“ sein?
Wenn beliebig: Wie?
Ich konnte die RGB-Leuchtdiode ansprechen, aber den 5V LED-Stripe nicht.
An Arduino kann man fast alles anschließen. Einzig ein paraleller Bus zum Anschluß von RAM, ROM oder ander Computerbausteine ist schwierig, bzw kann nicht als Systemspeicher verwendet werden.
Fast alles kann angeschlossen werden. Manchmal direkt, oft aber nur über Zusatzhardware als Treiber, Adapter oder Interface.
Auslesen der Steuerung des Roboters. Ich kenne das Teil nicht und kann darum nichts sagen.
RGB-LED die in dem Chipz-Roboter eingebaut ist oder eine "lose" RGB-LED?
5V-LED-stripe Datenblatt posten. Ersatzweise ein Foto posten.
Die Mikrocontrollerwelt ist nicht superstandardisiert wie USB-Geräte.
Wie schon erwähnt vieles ansteuerbar mit den entsprechenden Interface-Schaltungen die dazwischen gehängt werden.
Ich trau mir schon zu auch komplexere Lösungen zu erarbeiten, ich bin zwar nur ABAP-Entwickler aber das immerhin seit 20 Jahren.
Wir haben in der Ausbildung leider noch mit COBOL gelernt, C++ kam erst 2 Jahrgänge später dran.
Also fuchse ich mich jetzt in C++ rein und muss all den Physik-Kram nachholen, den ich in der 10. Klasse abgewählt habe (ich Depp).
Das wäre mein Coding:
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
//#define COMMON_ANODE
// Hier den Stripe definieren?
void setup()
// Pinbelegung
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
// Main
{
setColor(255, 0, 0); // red -> ruft setColor
delay(1000);
setColor(0, 255, 0); // green -> ruft setColor
delay(1000);
setColor(0, 0, 255); // blue -> ruft setColor
delay(1000);
setColor(255, 255, 0); // yellow -> ruft setColor
delay(1000);
setColor(80, 0, 80); // purple -> ruft setColor
delay(1000);
setColor(0, 255, 255); // aqua -> ruft setColor
delay(1000);
}
void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Wenn du mit dem Sketch zufrieden bist, dann mache eine Kopie davon.
Die Verwendung der delay() Funktion stört spätestens dann, wenn eine Taste abgefragt werden soll. Der Zustand des Button-Pinport findet erst nach 2*3 Sekunden statt und blockiert somit die Echtzeitverarbeitung.
Die delay() Funktion läßt sich durch einen auf der millis() Funktion basierenden Timer realisieren. Hierzu schaue dir am Besten das BLINKWITHOUTDELAY Beispiel aus dem IDE an.
Dieses Timerbeispiel ist die Mutter aller Timer, mit (n+1) Varianten, die im Arduinobiotop verwendet werden.
Probieren geht über Studieren; als einfaches Beispiel baue dir einen Timer den man Starten und Stoppen kann.
Ich wünsche einen geschmeidigen Tag und viel Spass beim Programmieren in C++.
OK der Streifen ist für 5V (Steht drauf). Ersten Zweifel entkräftet.
Die Ausgänge des Arduino können nicht genügend Strom liefern um den Streifen zu versorgen. Da brauchst Du Transistoren oder MOSFETs dazwischen.