Bonjour, je travaille sur un projet de lecteur de carte à puce (téléphonique) et j'ai un problème au niveau du serial monitor j'aimerais qu'il me stocke les bits de la carte mais je n'y arrive pas j'ai bien une communication entre ma carte arduino et le logiciel mais ce qui apparait n'est pas les bits présents sur la carte ( car j'ai pu vérifier à l'oscilloscope)
Voici mon code:
int RAZ = 0;
int H = 1;
int W = 2;
int ACK = 3;
int S = 4;
int val ;void setup() {
Serial.begin(9600);
// prints title with ending line break
// initialisation des entrées analogiques;
pinMode(RAZ, OUTPUT);
pinMode(H, OUTPUT);
pinMode(S, INPUT);
pinMode(ACK, INPUT);}
void loop (){
boolean CarteState = digitalRead(ACK);
while ( CarteState == HIGH ){
Serial.println("carte absente") ;
delay (1000);
CarteState = digitalRead(ACK);
}Serial.println("carte presente");
//initialisation de la carte
digitalWrite (RAZ, LOW); //début RAZ
digitalWrite (H,LOW);
delay (25);digitalWrite (RAZ, LOW);
digitalWrite (H, HIGH);
delay (25);digitalWrite (RAZ, LOW);
digitalWrite (H, LOW);delay (50);
//fin initialisation de la carte
digitalWrite (RAZ, HIGH); // lecture bit 1
digitalWrite (H, LOW);
delay (25);
boolean BitState = digitalRead(S);
if (BitState==HIGH){
Serial.println("haut"); }
else{Serial.println("bas");}
//delay (25);//debut de lecture carte
for (int i=0; i <= 25; i++)
{// impulsion de ratio HAUT/BAS fonction de i sur la broche 10
digitalWrite (H, HIGH);
delay (25);
digitalWrite (H, LOW);delay (25);
boolean BitState = digitalRead(S);
if (BitState==HIGH){
Serial.println("haut"); } else{Serial.println("bas");}
delay (25);} // fin de la boucle for
delay (5000);
}
S est l'entrée sur laquelle je stocke les valeurs, dans ce programme je ne cherche à lire que les 26 premiers bits mais ça ne change pas grand chose si il y en a 256bit
Merci