Bonjour, je cherche à faire un programme qui reçoit sur un Arduino nano un signal PWM et qui envoi en liaison série un caractère sur un autre Arduino nano si ce caractère est lu alors j'envoi un signal sur un digital pin qui va m'ouvrir ou fermer un relai.
Tout marche séparément, mes cartes marche j'arrive à contrôler mes relai je réceptionne bien mon PWM cependant lorsque mon deuxième Arduino reçoit mes donnée de liaison série et rentre dans ma boucle if le digital write high ou low ne marche pas en dehors de cette boucle il marche pourquoi ? si vous avec des idées je suis preneur ou d'autre façon de faire si celle la n'est pas possible. je ne cherche pas a faire un beau programme juste un petit programme fonctionnel.
PROGRAMME EMMETEUR:
include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1);
int pulse = 6;
int val;
void setup()
{
mySerial.begin(9600);
pinMode(pulse, INPUT);
}
void loop()
{
val = pulseIn (pulse, HIGH);
if (val < 1400)
{
mySerial.write("b");
} delay (50);
if (val > 1400)
{
mySerial.write("a");
}delay(50);
}
PROGRAMME RECEVEUR:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1);
String readString;
void lumiere_allume();
void lumiere_eteinte();
void setup()
{
mySerial.begin(9600);
pinMode(5, OUTPUT);
}
void loop()
{
if (readString.indexOf("a") != -1)
{
lumiere_allume();
//digitalWrite(5, HIGH);
//Serial.println("a");
}delay (1000);
if (readString.indexOf("b") != -1);
{
lumiere_eteinte();
//digitalWrite(5, LOW);
//Serial.println("b");
} delay (1000);
}
void lumiere_allume()
{
digitalWrite(5, HIGH);
Serial.println("a");
}
void lumiere_eteinte()
{
digitalWrite(5, LOW);
Serial.println("b");
}
j'ai testé de passer mes digital dans une fonction c'est pour cela qu'il y a une répétition.