Potete avere l'app gratuitamente contattandomi e ve la manderò in qualche modo.
Collegamenti:
Modulo bluetooth hc-06 all'arduino connettendo RX al TX e il TX all'RX.
Modulo relè alle uscite di arduino 4, 5, 6, 7, 8.
Codice Arduino: Version 1.0 (stabile e testata)
#include <SoftwareSerial.h>
#include <EEPROM.h>
SoftwareSerial mySerial(2,3); //RX, TX
char val;
int luce1 = 4;
int luce2 = 5;
int luce3 = 6;
int luce4 = 7;
int luce5 = 8;
int Step;
boolean s1 = false;
boolean s2 = false;
boolean s3 = false;
boolean s4 = false;
boolean s5 = false;
byte datoeeprom1;
byte datoeeprom2;
byte datoeeprom3;
byte datoeeprom4;
byte datoeeprom5;
boolean passo = false;
long unsigned int time = millis();
int intervallo = 200; //valore base = 150, aumentare se si è lenti a passare da un tasto all'altro del telecomando
void setup() {
Serial.begin(9600); // Inizializza la comunicazione seriale a 9600bps
mySerial.begin(9600);
pinMode(luce1, OUTPUT);
pinMode(luce2, OUTPUT);
pinMode(luce3, OUTPUT);
pinMode(luce4, OUTPUT);
pinMode(luce5, OUTPUT);
Serial.println("output fatto");
//carico valore memoria e accendo/spengo vari relè
datoeeprom1 = EEPROM.read(1);
datoeeprom2 = EEPROM.read(2);
datoeeprom3 = EEPROM.read(3);
datoeeprom4 = EEPROM.read(4);
datoeeprom5 = EEPROM.read(5);
Serial.println("leggo dati dalla eproom");
Serial.println(datoeeprom1);
Serial.println("1 fatto, ora il secondo:");
Serial.println(datoeeprom2);
if (datoeeprom1 == 1)
{
digitalWrite(luce1, HIGH);
}else{
digitalWrite(luce1, LOW);
}
if (datoeeprom2 == 1)
{
digitalWrite(luce2, HIGH);
}else{
digitalWrite(luce2, LOW);
}
if (datoeeprom3 == 1)
{
digitalWrite(luce3, HIGH);
}else{
digitalWrite(luce3, LOW);
}
if (datoeeprom4 == 1)
{
digitalWrite(luce4, HIGH);
}else{
digitalWrite(luce4, LOW);
}
if (datoeeprom5 == 1)
{
digitalWrite(luce5, HIGH);
}else{
digitalWrite(luce5, LOW);
}
}
void loop() {
riceviValori();
if (val == '1')
{
if (s1 == true){
digitalWrite(luce1, LOW);
Serial.println("funzia");
EEPROM.write(1, 0);
s1 = false;
}
else{
digitalWrite(luce1, HIGH);
EEPROM.write(1, 1);
s1 = true;
}
}
if( val == '2' )
{
if (s2 == true){
digitalWrite(luce2, LOW);
EEPROM.write(2, 0);
s2 = false;
}
else{
digitalWrite(luce2, HIGH);
EEPROM.write(2, 1);
s2 = true;
}
}
if( val == '3' )
{
if (s3 == true){
digitalWrite(luce3, LOW);
EEPROM.write(3, 0);
s3 = false;
}
else{
digitalWrite(luce3, HIGH);
EEPROM.write(3, 1);
s3 = true;
}
}
if( val == '4' )
{
if (s4 == true){
digitalWrite(luce4, LOW);
EEPROM.write(4, 0);
s4 = false;
}
else{
digitalWrite(luce4, HIGH);
EEPROM.write(4, 1);
s4 = true;
}
}
if( val == '5' )
{
if (s5 == true){
digitalWrite(luce5, LOW);
EEPROM.write(5, 0);
s5 = false;
}
else{
digitalWrite(luce5, HIGH);
EEPROM.write(5, 1);
s5 = true;
}
}
if( val == 'P' ) //PULSANTE PIù
{
intervallo = intervallo + 100;
}
if( val == 'M' ) //PULSANTE MENO
{
intervallo = intervallo - 100;
}
if( val == 'S' ) //PULSANTE SEQUENZA
{
if (passo == true)
{
passo = false;
}
else{
passo = true;
digitalWrite(luce1, LOW);
digitalWrite(luce2, LOW);
digitalWrite(luce3, LOW);
digitalWrite(luce4, LOW);
digitalWrite(luce5, LOW);
funzioneStep();
}
}
delay(100); // attende 100ms per la prossima lettura
}
void riceviValori(){
val = mySerial.read(); // legge il valore e lo salva nella variabile 'val'
}
void funzioneStep(){
switch (Step)
{
/* case 1:
if (bottonepremuto!=0)
{
}
break;
case 2:*/
}
}
#include <EEPROM.h>
SoftwareSerial mySerial(2,3); //RX, TX
char val;
int luce1 = 4;
int luce2 = 5;
int luce3 = 6;
int luce4 = 7;
int luce5 = 8;
int Step;
boolean s1 = false;
boolean s2 = false;
boolean s3 = false;
boolean s4 = false;
boolean s5 = false;
byte datoeeprom1;
byte datoeeprom2;
byte datoeeprom3;
byte datoeeprom4;
byte datoeeprom5;
boolean passo = false;
long unsigned int time = millis();
int intervallo = 200; //valore base = 150, aumentare se si è lenti a passare da un tasto all'altro del telecomando
void setup() {
Serial.begin(9600); // Inizializza la comunicazione seriale a 9600bps
mySerial.begin(9600);
pinMode(luce1, OUTPUT);
pinMode(luce2, OUTPUT);
pinMode(luce3, OUTPUT);
pinMode(luce4, OUTPUT);
pinMode(luce5, OUTPUT);
Serial.println("output fatto");
//carico valore memoria e accendo/spengo vari relè
datoeeprom1 = EEPROM.read(1);
datoeeprom2 = EEPROM.read(2);
datoeeprom3 = EEPROM.read(3);
datoeeprom4 = EEPROM.read(4);
datoeeprom5 = EEPROM.read(5);
Serial.println("leggo dati dalla eproom");
Serial.println(datoeeprom1);
Serial.println("1 fatto, ora il secondo:");
Serial.println(datoeeprom2);
if (datoeeprom1 == 1)
{
digitalWrite(luce1, HIGH);
}else{
digitalWrite(luce1, LOW);
}
if (datoeeprom2 == 1)
{
digitalWrite(luce2, HIGH);
}else{
digitalWrite(luce2, LOW);
}
if (datoeeprom3 == 1)
{
digitalWrite(luce3, HIGH);
}else{
digitalWrite(luce3, LOW);
}
if (datoeeprom4 == 1)
{
digitalWrite(luce4, HIGH);
}else{
digitalWrite(luce4, LOW);
}
if (datoeeprom5 == 1)
{
digitalWrite(luce5, HIGH);
}else{
digitalWrite(luce5, LOW);
}
}
void loop() {
riceviValori();
if (val == '1')
{
if (s1 == true){
digitalWrite(luce1, LOW);
Serial.println("funzia");
EEPROM.write(1, 0);
s1 = false;
}
else{
digitalWrite(luce1, HIGH);
EEPROM.write(1, 1);
s1 = true;
}
}
if( val == '2' )
{
if (s2 == true){
digitalWrite(luce2, LOW);
EEPROM.write(2, 0);
s2 = false;
}
else{
digitalWrite(luce2, HIGH);
EEPROM.write(2, 1);
s2 = true;
}
}
if( val == '3' )
{
if (s3 == true){
digitalWrite(luce3, LOW);
EEPROM.write(3, 0);
s3 = false;
}
else{
digitalWrite(luce3, HIGH);
EEPROM.write(3, 1);
s3 = true;
}
}
if( val == '4' )
{
if (s4 == true){
digitalWrite(luce4, LOW);
EEPROM.write(4, 0);
s4 = false;
}
else{
digitalWrite(luce4, HIGH);
EEPROM.write(4, 1);
s4 = true;
}
}
if( val == '5' )
{
if (s5 == true){
digitalWrite(luce5, LOW);
EEPROM.write(5, 0);
s5 = false;
}
else{
digitalWrite(luce5, HIGH);
EEPROM.write(5, 1);
s5 = true;
}
}
if( val == 'P' ) //PULSANTE PIù
{
intervallo = intervallo + 100;
}
if( val == 'M' ) //PULSANTE MENO
{
intervallo = intervallo - 100;
}
if( val == 'S' ) //PULSANTE SEQUENZA
{
if (passo == true)
{
passo = false;
}
else{
passo = true;
digitalWrite(luce1, LOW);
digitalWrite(luce2, LOW);
digitalWrite(luce3, LOW);
digitalWrite(luce4, LOW);
digitalWrite(luce5, LOW);
funzioneStep();
}
}
delay(100); // attende 100ms per la prossima lettura
}
void riceviValori(){
val = mySerial.read(); // legge il valore e lo salva nella variabile 'val'
}
void funzioneStep(){
switch (Step)
{
/* case 1:
if (bottonepremuto!=0)
{
}
break;
case 2:*/
}
}