Bonjour à tous,
je débute en Arduino et je commence à maîtriser certaines fonctionnalités.
Je suis maintenant capable de créer un mini programme contenant des fonctions qui me donne des résultats satisfaisants.
Maintenant, je suis bloqué dans l'évolution de mon programme.
Projet: faire un décodeur permettant de lire des données binaires issues de 5 capteurs optiques à fourche et les transformer en une valeur décimale.
- j'arrive parfaitement à réaliser cette tâche dans le main.cpp
- je souhaiterais, comme je l'ai lu par ailleurs, transférer cette fonction dans 2 fichiers auxiliaires (decodeur.h et decodeur.cpp) mais je butte car je n'arrive pas à créer les classes, fonctions, ... qui me permettent ce déplacement de fonction.
- j'ai consulté plusieurs sites qui décrivent cela mais je n'aboutis pas à quelque chose de concluant en terme de fonctionnement.
- pour info, j'ai compris le tuto "morse" et ai réussi à le reproduire.
Pouvez-vous m'expliquer comment transférer et modifier ce code en créant des classes qui reprendront cette fonction.
Merci par avance
Nota: je développe avec VS Code.
ci-joint mon code:
// Récupération des fichiers d'en-tête
#include <Arduino.h>
#include <SoftwareSerial.h>
// ----------- fonction choix série début -------------
void Choix_serie()
{
int cf1 = 4; // déclaration des 5 capteurs optiques
int cf2 = 5;
int cf3 = 6;
int cf4 = 7;
int cf5 = 8;
int m_cf1; // variables lecture des valeurs des 5 capteurs optiques
int m_cf2;
int m_cf3;
int m_cf4;
int m_cf5;
int serieNum; // Variable décimale calculée à partir des 5 capteurs optiques
pinMode(cf1, INPUT); // déclaration des 5 capteurs optiques en entrée
pinMode(cf2, INPUT);
pinMode(cf3, INPUT);
pinMode(cf4, INPUT);
pinMode(cf5, INPUT);
m_cf1 = digitalRead(cf1); // lecture des 5 capteurs optiques
m_cf2 = digitalRead(cf2);
m_cf3 = digitalRead(cf3);
m_cf4 = digitalRead(cf4);
m_cf5 = digitalRead(cf5);
serieNum = m_cf1 + 2* m_cf2 +4* m_cf3 + 8* m_cf4 +16* m_cf5; // calcul de la valeur décimale
Serial.print("serieNum dans Choix_serie..cpp "); // affichage de la valeur de serieNum
Serial.println(serieNum);
}
//----------- fonction choix série fin -------------
void setup()
{
Serial.begin(9600); // initialisation du moniteur série
Serial.println(F("Moniteur série initialisé"));
Choix_serie(); // lancement de la fonction dans le setup
Serial.println("SerieNumero: "); // c'est là que je veux récupérer la valeur de la série mais rien ne s'affiche.
}