Decision maker with LEDs

The following circuit and code shows an example of a decision maker made with LEDs. Pushing the button will make the LEDs flash in a random order for 1 second. Then displaying the random decision where one LED lights up for 3 seconds and then reseting.

  1. int timeShowRandom = 1000;
  2. int timeShowDecision = 3000;
  3. int timeBlink = 50;
  4. int buttonPin = 3;
  5.  
  6. int buttonPress = false;
  7. int randomNumber;
  8. int previousNo = 0;
  9. int timePassed = 0;
  10.  
  11. void setup() {    
  12.   // Set button pin
  13.   pinMode(buttonPin, INPUT);
  14.   // Set output pins  
  15.   pinMode(12, OUTPUT);
  16.   pinMode(11, OUTPUT);
  17.   pinMode(10, OUTPUT);
  18.  
  19. }
  20.  
  21. void getRandomNo() {
  22.   int rand = random(10,13);
  23.   if(rand == previousNo) {
  24.     getRandomNo();
  25.   } else {
  26.     randomNumber = rand;
  27.     previousNo = randomNumber;
  28.   }
  29. }
  30.  
  31. void loop() {
  32.   // Check if button is pressed
  33.   if(digitalRead(buttonPin) == HIGH && buttonPress == false) {
  34.      buttonPress = true;
  35.   } if(buttonPress == true && timePassed <= timeShowRandom) {
  36.     getRandomNo(); // Get random pin number
  37.     digitalWrite(randomNumber, HIGH);
  38.     delay(timeBlink);  
  39.     digitalWrite(randomNumber, LOW);
  40.     delay(timeBlink);  
  41.     timePassed = timePassed + (timeBlink * 2);
  42.   } else if(buttonPress == true) {
  43.     digitalWrite(random(10,13), HIGH); // Set random pin on
  44.     delay(timeShowDecision); // For x seconds
  45.     buttonPress = false; // Set button to be enabled again
  46.     timePassed = 0;
  47.   } else {
  48.     // Reset all output pins
  49.     digitalWrite(10, LOW);
  50.     digitalWrite(11, LOW);
  51.     digitalWrite(12, LOW);
  52.   }    
  53. }

Detect switch on digitalread

  1. const int buttonPin = 3;
  2. int buttonState = 0;    
  3.  
  4. void setup() {
  5.   Serial.begin(9600);  
  6.   pinMode(buttonPin, INPUT);    
  7. }
  8.  
  9. void loop(){
  10.   buttonState = digitalRead(buttonPin);
  11.   Serial.println(buttonState);
  12. }

Flexi force sensor

How to hook up a Flexi Force sensor with Arduino and read out the values.

  1. int fsrReading;
  2.  
  3. void setup(void) {
  4.   Serial.begin(9600);  
  5. }
  6.  
  7. void loop(void) {
  8.   fsrReading = analogRead(A0);
  9.   Serial.print("Analog reading = ");
  10.   Serial.println(fsrReading);
  11.  
  12.   delay(100);
  13. }

See example of how to use a Flexi Force sensor with Arduino.

PNP transistor


Turn the LED on with this code:

  1. void setup() {                
  2.   pinMode(13, OUTPUT);    
  3. }
  4.  
  5. void loop() {
  6.   digitalWrite(13, HIGH); // Turn on LED
  7.   delay(5000);
  8.   digitalWrite(13, LOW); // Turn off LED
  9.   delay(5000);      
  10. }

Flex sensor

To get the values from the flex sensor you need a 22K resistor.

  1. void setup() {
  2.       Serial.begin(9600);
  3. }
  4.  
  5. void loop() {
  6.       int sensorValue = analogRead(A0);
  7.       Serial.println(sensorValue, DEC);
  8. }

See how the sensor can be use in a project like Bad posture by Ellen Sundh.