diff options
Diffstat (limited to 'week2')
-rw-r--r-- | week2/main.ino | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/week2/main.ino b/week2/main.ino new file mode 100644 index 0000000..87f07bc --- /dev/null +++ b/week2/main.ino @@ -0,0 +1,41 @@ +#define AIN1 0 +#define AIN2 1 + +int i = 0; +int down0 = 0; +int down1 = 0; +int color = 0; +int rate = 250; + +void setup() { + pinMode(AIN1, OUTPUT); + pinMode(AIN2, OUTPUT); + analogReadResolution(8); +} + +void set_color() { + if (i % (2 * rate) < rate) digitalWrite(AIN1, LOW), digitalWrite(AIN2, LOW); + else { + if (color) digitalWrite(AIN1, HIGH), digitalWrite(AIN2, LOW); + else digitalWrite(AIN1, LOW), digitalWrite(AIN2, HIGH); + } +} + +void loop() { + if (i % rate == 0) set_color(); // Toggle color + + // Make sure this is a press and the button isn't already down + if (analogRead(A0) > 200) { + if (!down0) color = !color, set_color(); + down0 = 1; + } + else down0 = 0; + if (analogRead(A1) > 200) { + if (!down1) rate = (rate == 250 ? 500 : 250), set_color(); + down1 = 1; + } + else down1 = 0; + + delay(1); + i++; +} |