void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Définir la broche de la LED en sortie
Serial.begin(9600); // Initialiser la communication série
}
void loop() {
Serial.println("Entrer un mot de 4 bits");
while (Serial.available() < 4) {
// Attendre que les 4 caractères soient disponibles
}
if (Serial.available() >= 4) {
char Tab[5]; // Le tableau doit être de taille 5 pour stocker les 4 caractères binaires et le caractère nul ('\0')
for (int i = 0; i < 4; i++) {
Tab[i] = Serial.read(); // Lire les caractères binaires entrés
}
//Tab[4] = '\0'; // Ajouter le caractère nul à la fin du tableau pour former une chaîne de caractères
if (isValidBinary(Tab)) {
if (Tab[3] == '0') { // Utilisez des guillemets simples ('') pour les caractères, pas des guillemets doubles ("")
digitalWrite(LED_BUILTIN, LOW); // Éteindre la LED
Serial.println("LED éteinte");
} else if (Tab[3] == '1') {
digitalWrite(LED_BUILTIN, HIGH); // Allumer la LED
Serial.println("LED allumé");
} else {
Serial.println("Mot binaire invalide");
}
} else {
Serial.println("Caractère invalide");
}
}
}
bool isValidBinary(const char* Tab) {
for (int i = 0; i < 4; i++) {
if (Tab[i] != '0' && Tab[i] != '1') {
return false;
}
}
return true;
}
Si tu as ton mot binaire dans une variable, disons mot, pour obtenir le dernier bit, tu peux faire : int dernier = mot & 1;
Il te reste à tester la valeur de ce bit :
jusque là, ça va, je sais ce qu'est un quartet (nibble, ou nybble, en anglais)
isoler un bit par masquage est trivial, le décaler si besoin également, pour le recopier à sa bonne place dans le port gérant la DEL, ou l'utiliser comme argument, etc...
mais quand je vois ce type de commentaire
j'en déduis que le prof a fourni un squelette de programme, dans lequel il demande l'utilisation d'un tableau : où est sa logique ? quartet ou tableau ? ce ne sont pas les mêmes types d'objet, ils ne se gèrent pas avec les mêmes outils.
quand les choses seront enfin à plat dans l'énoncé, alors on pourra envisager une façon de traiter, pas avant.
Et le titre non conforme !
Alors maintenant ont ne repond plus s’il n’y a pas les balises codes mais on se fiche du fonctionnement du moteur de recherche du forum !
Il est spécifié dans le message d’accueil quels titres sont interdit, il est aussi spécifié que les messages aux titres non conformes seront supprimés.
Commençons par appliquer les règles et comme pour les balises codes ne pas repondre tant que le titre n’est pas corrigé
@xtvbabing
Pour corriger le titre il faut cliquer sur l’icone en forme de crayon dans la ligne du titre.
Il est important que le titre soit représentatif du sujet car les titres sont utilisés par le moteur de recherche du forum.
Avec le titre que tu as mis, les réponses qui te seront données ne pourront pas servir a d’autres.
Merci de modifier rapidement.
hello
j'arrive sur ce post avec du retard, en lisant les échanges, je ressens de l'agacement de ta part.
Quand on vient demander de l'aide, on doit être prêt à se montrer correct avec les intervenants et à respecter les règles du forum( ce qui t'a été demandé en #2,#4,#5,#6,#7.)
Je ne comprends pas trop ce qui te freine à faire la modification de la présentation de ton code.
Cela prend encore moins de temps que t'écrire des émoticônes
Oui, c'est ce que j'ai supposé, donc tu n'a besoin de rien ?
Par contre si on veut être tatillon, tu ne gère pas ta LED vraiment en binaire
puisque tu perd 7 bits pour chaque LED
Du coup, pour être chieur, ton titre ne correspond pas à ton code