Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*This is code for my Sparkfun EL Sequencer with 6 strands
- of EL wire. The inputs are radio inputs from a Spektrum
- AR600 Receiver, coupled to a Spektrum DX5e transmitter for
- R/C airplanes to remotely control the system. It was built
- for a rock opera put on by the Albany Symphony for a piece
- composed by Chris Kapica, to be worn by the
- dancer/choreographer. I was able to build this code
- with the help of and using components from 'Eight':
- http://www.64ox.com/2010/11/28/read-rc-rx-with-an-arduino/
- and 'dianaeng':
- http://blog.makezine.com/2010/04/27/programming-el-wire-fashion/
- Enjoy! -Tom Nasca */
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #include <util/delay.h>
- void elSegment(byte num, boolean value) { // Turns a given EL wire segment on or off.
- } //'num' is the segment (0-7 as A-H).
- //'value' is true or false (as 'on' or 'off').
- int rx1 = 0; //Throttle on DX5e
- int rx2 = 0; //Aileron " " "
- int rx3 = 0; //Elevation " " "
- int rx4 = 0; //Rudder " " "
- int rx5 = 0; //AUX " " "
- int rx6 = 0; //Trainer " " "
- void setup() {
- byte i; //Sets up the EL wire segment pins.
- for (i = 2; i < 10; i++) { //Segments 0-7 correspond to A-H
- pinMode(i, OUTPUT); //on the Sparkfun EL Sequencer.
- digitalWrite(i, LOW); //
- } //
- Serial.begin(115200); //Open the serial port at 115200bps.
- } //Lower values produced ASCII characters.
- // control how long each segment is turned on by changing the delay
- // delete the code that is not being used EL wire segments
- void loop(){
- rx1=pulseIn(A2,HIGH,20000); //Assign name and read values of
- rx2=pulseIn(A3,HIGH,20000); //pins with a 20ms timeout, print
- rx3=pulseIn(A4,HIGH,20000); //values to Serial Monitor for
- rx4=pulseIn(A5,HIGH,20000); //viewing. Lower timeout values
- rx5=pulseIn(A6,HIGH,20000); //produced ocassional dropped
- rx6=pulseIn(A7,HIGH,20000); //readings.
- Serial.print(rx1); //
- Serial.print("\t"); //
- Serial.print(rx2); //
- Serial.print("\t"); //
- Serial.print(rx3); //
- Serial.print("\t"); //
- Serial.print(rx4); //
- Serial.print("\t"); //
- Serial.print(rx5); //
- Serial.print("\t"); //
- Serial.print(rx6); //
- Serial.print("\t"); //
- Serial.println("\t"); //
- {
- if (rx2 < 1400){ //Lights whole left arm
- elSegment(5, true); //
- elSegment(6, true); //
- elSegment(7, true);} //
- else{ //
- elSegment(5, false); //
- elSegment(6, false); //
- elSegment(7, false);} //
- }
- {
- if (rx3 < 1400){ //Lights whole right arm
- elSegment(0, true); //
- elSegment(1, true); //
- elSegment(2, true);} //
- else{ //
- elSegment(2, false); //
- elSegment(1, false); //
- elSegment(0, false);} //
- }
- {
- if (rx4 < 1400){ //Lights both arms
- elSegment(0, true); //
- elSegment(1, true); //
- elSegment(2, true); //
- elSegment(5, true); //
- elSegment(6, true); //
- elSegment(7, true);} //
- else{ //
- elSegment(2, false); //
- elSegment(1, false); //
- elSegment(0, false); //
- elSegment(5, false); //
- elSegment(6, false); //
- elSegment(7, false);} //
- }
- {
- if (rx5 <1400){ //Left arm cycle up
- elSegment(5, true); //
- delay(rx1 - 1000); //
- elSegment(6, true); //
- delay(rx1 - 1000); // <-- The delay here is variable
- elSegment(7, true); // based on the value of
- delay(rx1 - 1000); } // input rx1.
- else{ //
- elSegment(5, false); //
- elSegment(6, false); //
- elSegment(7, false);} //
- }
- {
- if (rx6 <1400){ //Random
- elSegment(5, true); //
- delay(rx1 - 1000); //
- elSegment (5, false); //
- elSegment(1, true); //
- delay(rx1 - 1000); //
- elSegment (1, false); //
- elSegment(2, true); //
- delay(rx1 - 1000); //
- elSegment (2, false); //
- elSegment(7, true); //
- delay(rx1 - 1000); //
- elSegment (7, false); //
- elSegment(6, true); //
- delay(rx1 - 1000); //
- elSegment (6, false); //
- elSegment(0, true); //
- delay(rx1 - 1000); //
- elSegment (0, false);} //
- else{ //
- elSegment(2, false); //
- elSegment(1, false); //
- elSegment(0, false); //
- elSegment(5, false); //
- elSegment(6, false); //
- elSegment(7, false);} //
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment