Also nach ein paar Tagen tüfteln funktioniert also soweit ich es mal bringen wollte....
Was funktioniert:
Serial.read (für xBee Kommunikation)
DigitalWrite (für Relais zum Aus- und Einschalten)
Wie funktionierts:
Google Code Archive - Long-term storage for Google Code Project Hosting. - Runterladen und unter hardware ablegen - ATiny2313 auswählen (Unterschied zw. 8 und 1 MHz - keine Ahnung - so far). Kompilieren und hoffen das der Sketch nicht zu gross wird.
Upload: Den mach ich derzeit über das mitgelieferte Windows-Programm von myAVR - Ich hab den mySmartUSB MKII nicht dazu überreden können, das er sich mit Arduino verträgt - man findet auch im Internet relativ karge Informationen (ausser wie man einen Bootloader hochlädt...)
Beispiel:
Der Sketch hat 2014 Bytes - also knapp am Limit... bzw. wenig Platz für Tests (meine Empfehlung: Testen am Arduino, wenns geht soweit wie möglich runtertrimmen und auf dem ATTiny brennen...)
byte ignore = 0;
int xcommand = 0;
void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available() == 17){
if (Serial.read() == 0x7E){
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
ignore = Serial.read();
xcommand = Serial.read();
relay();
ignore = Serial.read();
}
}
}
void relay(){
switch(xcommand){
case 11:
digitalWrite(3, HIGH);
break;
case 10:
digitalWrite(3, LOW);
break;
case 21:
digitalWrite(4, HIGH);
break;
case 20:
digitalWrite(4, LOW);
break;
case 31:
digitalWrite(5, HIGH);
break;
case 30:
digitalWrite(5, LOW);
break;
case 41:
digitalWrite(6, HIGH);
break;
case 40:
digitalWrite(6, LOW);
break;
case 51:
digitalWrite(7, HIGH);
break;
case 50:
digitalWrite(7, LOW);
break;
case 61:
digitalWrite(8, HIGH);
break;
case 60:
digitalWrite(8, LOW);
break;
case 71:
digitalWrite(9, HIGH);
break;
case 70:
digitalWrite(9, LOW);
break;
case 81:
digitalWrite(11, HIGH);
break;
case 80:
digitalWrite(11, LOW);
break;
case 99:
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(11, LOW);
break;
}
}
Wieso tut man sich sowas an?
Beim C*nrad gibts eine 8fach Relais-Karte - welche mit einen ATTiny 2313 ausgestattet ist - wenn man also ein bisschen löten kann, dann kann man diese Relaykarte relativ gut von der angedachten seriellen Kommunikation "entfesseln" und mit XBee um ca. 25,- ( x 2 - man braucht ja auch ein Gegenpart) überallhin platzieren...
Wenn man dann noch ein wenig herumtut, kann man das mit einer Ethernet-Karte und einen "Web-Server" auf dem Arduino austatten und hat somit eine relativ günstige Steuerung für 220V Geräte...