There is a code which let to run LEDs with android using bluetooth module HC-05. LEDs switch one by one, it is ok.
But it nesessary to add the mode of switching of all diodes in automatic random mode.
The code wich I use is below. The code is working well.
int ledPin_1 = 9;
int ledPin_2 = 10;
int ledPin_3 = 11;
int ledPin_4 = 12;
int ledPin_5 = 13;
void setup() {
Serial.begin(9600);
pinMode(ledPin_1, OUTPUT);
pinMode(ledPin_2, OUTPUT);
pinMode(ledPin_3, OUTPUT);
pinMode(ledPin_4, OUTPUT);
pinMode(ledPin_5, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
int i = Serial.read()-48;
if (i == 1)digitalWrite(ledPin_1, !digitalRead(ledPin_1));
if (i == 2)digitalWrite(ledPin_2, !digitalRead(ledPin_2));
if (i == 3)digitalWrite(ledPin_3, !digitalRead(ledPin_3));
if (i == 4)digitalWrite(ledPin_4, !digitalRead(ledPin_4));
if (i == 5)digitalWrite(ledPin_5, !digitalRead(ledPin_5));
}
}
I think may be to use the code for random mode ;D :
void randomLED()
{
int index;
int delayTime;
index = random(5); delayTime = 100;
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW);
}
This code separately is working good but i can't bind it with bluetooth.
If all you want to do is start the random process using a code from Bluetooth you can just use one of the characters from your first code to start it and another to stop it - something like this
boolean randomLeds = false;
void loop() {
if (Serial.available() > 0) {
int i = Serial.read()-48;
if (i == 1) {
randomLeds = true;
}
if (i == 2) {
randomLeds = false;
}
}
randomFlashLeds();
} // end of loop() in case I haven't got my } brackets correct
void randomFlashLeds() {
int index;
int delayTime;
index = random(5);
delayTime = 100;
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW);
}
You will probably want to replace the use of delay() with millis() as illustrated in several things at a time
This code lets to switch on and switch off 5 LEDs one by one.
When I send command "1" from android the first LED switches on. When I send the command "1" one more time the LED switches off.
I send the command "2" to switch the second LED on or off .
Every LED works in that way. This code is below.
int ledPin_1 = 9;
int ledPin_2 = 10;
int ledPin_3 = 11;
int ledPin_4 = 12;
int ledPin_5 = 13;
void setup() {
Serial.begin(9600);
pinMode(ledPin_1, OUTPUT);
pinMode(ledPin_2, OUTPUT);
pinMode(ledPin_3, OUTPUT);
pinMode(ledPin_4, OUTPUT);
pinMode(ledPin_5, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
int i = Serial.read()-48;
if (i == 1)digitalWrite(ledPin_1, !digitalRead(ledPin_1)),Serial.println(" ledPin_1 !digitalRead ");
if (i == 2)digitalWrite(ledPin_2, !digitalRead(ledPin_2)),Serial.println(" ledPin_2 !digitalRead ");
if (i == 3)digitalWrite(ledPin_3, !digitalRead(ledPin_3)),Serial.println(" ledPin_3 !digitalRead ");
if (i == 4)digitalWrite(ledPin_4, !digitalRead(ledPin_4)),Serial.println(" ledPin_4 !digitalRead ");
if (i == 5)digitalWrite(ledPin_5, !digitalRead(ledPin_5)),Serial.println(" ledPin_5 !digitalRead ");
}
}
Yes, I need to run random mode when I send "6" and to switch the random mode off when I send "6" one more time.
The random code is below.
int ledPins[] = {2,3,4,5,6,7,8,9};
void setup()
{
int index;
for(index = 0; index <= 7; index++)
{
pinMode(ledPins[index],OUTPUT);
}
}
void loop()
{
randomLED();
}
void randomLED()
{
int index;
int delayTime;
index = random(5); delayTime = 100;
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
digitalWrite(ledPins[index], LOW);
}
I don't know how to program this code for the command "6"