Projet

Général

Profil

Envoie d'un cycle d'affichage entre deux arduino via USB (8octets) » master3.ino

Anonyme, 23/11/2021 16:06

 
#include <SoftwareSerial.h>
#include <string.h>

SoftwareSerial mySerial(10, 11);

const unsigned int MAX_MESSAGE_LENGTH = 36;
static char message[MAX_MESSAGE_LENGTH];

int ledpin[] = {22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53};


void setup() {
Serial.begin(9600);
mySerial.begin(9600);
for (int c=22;c<54;c++)
{
pinMode(c , OUTPUT);
}
}

void loop() {
String boucle="";
while (Serial.available() > 0)
{
static unsigned int message_pos = 0;

char inByte = Serial.read();


if ( inByte != '\n' && (message_pos < MAX_MESSAGE_LENGTH) )
{
message[message_pos] = inByte;
message_pos++;
}
else
{
message[message_pos] = '\0';
message_pos = 0;
}
}
boucle=message;
Serial.println(boucle);
for (int i=0;i<28;i=i+10)
{
String beta= String(boucle[i+4],BIN)+'0'+String(boucle[i+5],BIN)+'0'+String(boucle[i+6],BIN)+'0'+String(boucle[i+7],BIN);
String alpha= String(boucle[i],BIN)+'0'+String(boucle[i+1],BIN)+'0'+String(boucle[i+2],BIN)+'0'+String(boucle[i+3],BIN);
for (int p=0;p<33;p++){
if(alpha[p]=='1'){
digitalWrite(ledpin[p+1],1);
}
else digitalWrite(ledpin[p+1],0);
}

mySerial.print(beta);
mySerial.print('\n');
String affichage = String(boucle[i])+String(boucle[i+1])+String(boucle[i+2])+String(boucle[i+3]);
Serial.println(affichage);
delay(3000);
if (Serial.available()>0){
break;
}
}

}
(1-1/2)