C3PO Droid konstruktion (41 / 43 steg)
Steg 41: Programmet notering - Arduino Mega 2560
Arduino Mega 2560 läser remote relay triggers och skickar en 4 siffrig binär kod till Arduino Uno som representerar den önskad ljudfilen som ska spelas. Arduino Mega 2560 skickar också en subrutin nummer till Maestro servo controller som representerar den rörelse som ska spelas upp baserat på den avlägsna utlösaren. Hänvisa till elritningar hookup information.
John Guarnero
September 2014
seriell till Maestro config
#include
#define txPin 14
#define rxPin 15
#define sub0 0
SoftwareSerial mySerial (rxPin, txPin);
Ljud och Remote Installation
int Push1 = 0;
int Push2 = 0;
int Push3 = 0;
int Push4 = 0;
int Push5 = 0;
int Push6 = 0;
int Push7 = 0;
int Push8 = 0;
int Push9 = 0;
int Push10 = 0;
int Push11 = 0;
int Push12 = 0;
void setup()
{
seriell till Maestro config
mySerial.begin(9600);
Delay(1000);
definiera stift att använda för binär kod till Arduino Uno
pinMode (22, OUTPUT);
pinMode (24, OUTPUT);
pinMode (28, OUTPUT);
pinMode (30, OUTPUT);
Göra binär kod = 0
digitalWrite (22, låg); 1 2 4 8
digitalWrite (24, låg); 1 2 4 8
digitalWrite (28, låg); 1 2 4 8
digitalWrite (30, låg); 1 2 4 8
Definiera alla fjärrutlösare stift som ingångar med inre pullup motstånd
pinMode (31, INPUT_PULLUP); Relä 1
digitalWrite (31, hög). Aktivera Pullup
pinMode (33, INPUT_PULLUP); Relay 2
digitalWrite (33, hög), Aktivera Pullup
pinMode (35, INPUT_PULLUP); Relä 3
digitalWrite (35, hög). Aktivera Pullup
pinMode (37, INPUT_PULLUP); Relay 4
digitalWrite (37, hög). Aktivera Pullup
pinMode (39, INPUT_PULLUP); Relä 5
digitalWrite (39, hög), Aktivera Pullup
pinMode (41, INPUT_PULLUP); Relä 6
digitalWrite (41, hög); Aktivera Pullup
pinMode (43, INPUT_PULLUP); Relay 7
digitalWrite (33, hög), Aktivera Pullup
pinMode (45, INPUT_PULLUP); Relay 8
digitalWrite (45, hög); Aktivera Pullup
pinMode (47, INPUT_PULLUP); Relä 9
digitalWrite (47, hög); Aktivera Pullup
pinMode (49, INPUT_PULLUP); Relä 10
digitalWrite (49, hög). Aktivera Pullup
pinMode (51, INPUT_PULLUP); Relay 11
digitalWrite (51, hög). Aktivera Pullup
pinMode (53, INPUT_PULLUP); Relay 12
digitalWrite (51, hög). Aktivera Pullup
}
void loop()
{
Läs insatsvarorna som fjärrutlösare
Push1 = digitalRead(31);
Push2 = digitalRead(33);
Push3 = digitalRead(35);
Push4 = digitalRead(37);
Push5 = digitalRead(39);
Push6 = digitalRead(41);
Push7 = digitalRead(43);
Push8 = digitalRead(45);
Push9 = digitalRead(47);
Push10 = digitalRead(49);
Push11 = digitalRead(51);
Push12 = digitalRead(53);
Om Visa 1 utlöst, Malltyp sekvens
om (Push1 == 0)
{
Serial.println ("Grattis på födelsedagen Emily");
om (mySerial.available())
Serial.write(mySerial.Read());
om (Serial.available())
mySerial.write(Serial.read());
mySerial.write(0xA7); köra maestro subrutin
mySerial.write((byte)0x00); enhets-id
Skicka värdet binära 1 till Uno att spela WAV-fil 1
digitalWrite (22, hög). 1 2 4 8
digitalWrite (24, låg); 1 2 4 8
digitalWrite (28, låg); 1 2 4 8
digitalWrite (30, låg); 1 2 4 8
fördröjning (500).
digitalWrite (22, låg); 1 2 4 8
digitalWrite (24, låg); 1 2 4 8
digitalWrite (28, låg); 1 2 4 8
digitalWrite (30, låg); 1 2 4 8
}
Om show 2 utlösts, Malltyp sekvens
om (Push2 == 0)
{
Serial.println ("Grattis på födelsedagen Kim");
om (mySerial.available())
Serial.write(mySerial.Read());
om (Serial.available())
mySerial.write(Serial.read());
mySerial.write(0xA7); köra subrutin
mySerial.write((byte)0x01); enhets-id
Skicka värdet binära 2 till Uno att spela WAV-fil 2
digitalWrite (22, låg); 1 2 4 8
digitalWrite (24, hög). 1 2 4 8
digitalWrite (28, låg); 1 2 4 8
digitalWrite (30, låg); 1 2 4 8
fördröjning (500).
digitalWrite (22, låg); 1 2 4 8
digitalWrite (24, låg); 1 2 4 8
digitalWrite (28, låg); 1 2 4 8
digitalWrite (30, låg); 1 2 4 8
}
Om Visa 3 utlösts, Malltyp sekvens
om (Push3 == 0)
{
Serial.println ("Grattis på födelsedagen Megan");
om (mySerial.available())
Serial.write(mySerial.Read());
om (Serial.available())
mySerial.write(Serial.read());
mySerial.write(0xA7); köra subrutin
mySerial.write((byte)0x02); enhets-id
Skicka värdet av binära 3 till Uno att spela WAV-fil 3
digitalWrite (22, hög). 1 2 4 8
digitalWrite (24, hög). 1 2 4 8
digitalWrite (28, låg); 1 2 4 8
digitalWrite (30, låg); 1 2 4 8
fördröjning (500).
digitalWrite (22, låg); 1 2 4 8
digitalWrite (24, låg); 1 2 4 8
digitalWrite (28, låg); 1 2 4 8
digitalWrite (30, låg); 1 2 4 8
}
Om Visa 4 utlösts, Malltyp sekvens
om (Push4 == 0)
{
Serial.println ("Guarnero hus");
om (mySerial.available())
Serial.write(mySerial.Read());
om (Serial.available())