So, I wrote the code and hammered it to remove errors. The circuit did not behave as expected. After futzing around, I just uploaded the prewritten code, same apparent result. Here it is anyways:
/*
Arduino Starter Kit example
Project 2 - Spaceship Interface
This sketch is written to accompany Project 2 in the Arduino Starter Kit
Parts required:
- one green LED
- two red LEDs
- pushbutton
- 10 kilohm resistor
- three 220 ohm resistors
created 13 Sep 2012
by Scott Fitzgerald
http://www.arduino.cc/starterKit
This example code is part of the public domain.
*/
// Create a global variable to hold the state of the switch. This variable is
// persistent throughout the program. Whenever you refer to switchState, you’re
// talking about the number it holds
int switchstate = 0;
void setup() {
// declare the LED pins as outputs
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
// declare the switch pin as an input
pinMode(2, INPUT);
}
void loop() {
// read the value of the switch
// digitalRead() checks to see if there is voltage on the pin or not
switchstate = digitalRead(2);
// if the button is not pressed turn on the green LED and off the red LEDs
if (switchstate == LOW) {
digitalWrite(3, HIGH); // turn the green LED on pin 3 on
digitalWrite(4, LOW); // turn the red LED on pin 4 off
digitalWrite(5, LOW); // turn the red LED on pin 5 off
}
// this else is part of the above if() statement.
// if the switch is not LOW (the button is pressed) turn off the green LED and
// blink alternatively the red LEDs
else {
digitalWrite(3, LOW); // turn the green LED on pin 3 off
digitalWrite(4, LOW); // turn the red LED on pin 4 off
digitalWrite(5, HIGH); // turn the red LED on pin 5 on
// wait for a quarter second before changing the light
delay(250);
digitalWrite(4, HIGH); // turn the red LED on pin 4 on
digitalWrite(5, LOW); // turn the red LED on pin 5 off
// wait for a quarter second before changing the light
delay(250);
}
}
So ...
State 1, nothing plugged in = no lights
State 2, USB plugged in = no lights
State 3, USB/GND plugged in = green light on with switch on/off
State 4, USB/GND/5V plugged in = green light on // [button pressed] all LED off // [button unpressed] delay then green light on
State 5, same as 4 but using jumper to bypass switch = similar to 4 but most times (not all) no delay
When I rewrite the code from: if (switchstate == LOW) to HIGH, the red lights will blink in stead of a steady green, same otherwise to 4 and 5
Also, I get a warning on my mac soon after telling my Arduino is using too much power
EDIT: More importantly, the message (I later notice) pops up exactly when I press the button, here it is:
USB ACESSORIES DISABLED
Unplug the accessory using too much power to reenable USB devices.
A bit more information, ya.
So the wiring is correct, and the code. (I think)
Why does the Mac have problems with power draw when I press the button, that explains why the LED are dark.
Typing this I notice the LED on the UNO go out too. releasing the button brings it online again.
This now is certainly not a projects question but an Arduino question. How do I move it?
Guess I can try reporting myself ...