Bonsoir à toutes et à tous,
Je démarre avec l'Arduino et aussi avec le C donc, excusez moi par avance pour ces questions sans doute banales.
J'ai quelques petits problèmes avec ce programme:
int Adresse = 64;
int Valeur = 0;
int BrocheLed = 10;
void setup()
{
Serial.begin(9600);
pinMode (BrocheLed, OUTPUT); // configure BrocheLed en sortie
delay(1000); // attente de 1 secondes
digitalWrite(BrocheLed, LOW); // Led pour info
}
void loop()
{ // DEBUT DE LA ROUTINE
for (int i=7; i>-1; i--) // Envoie Adresse du bit 7 au Bit 0
{
int Za = pow(2,i);
Valeur = Adresse & Za;
Serial.print("Boucle");
Serial.println(i);
Serial.print("Adresse ");
Serial.println(Adresse);
Serial.print("2^i ");
Serial.println(Za);
Serial.print("Valeure ");
Serial.println(Valeur);
if ( Valeur == 0 )
{
Serial.println("Sortie=0");
digitalWrite(BrocheLed, LOW); // Mets sortie à 0
}
else
{
Serial.println("Sortie=1");
digitalWrite(BrocheLed, HIGH);// Mets sortie à 1
} // Endif
delay(3000); // attente de 3 secondes
Serial.println("");
} //Fin de boucle For
Serial.println("--------------");
} // Fin de void
Premier problème : Pourquoi l'instruction "pow(2,i);" me donne 127 pour i=7 ? Je ne devrai pas avoir 128 ? ( le problème est le même avec les autres puissances ...)
Autre problème : Quand je déclare les variables en "byte", l'instruction "Serial.println(Variable)" m'envoie le code Ascii et quand je déclare les variables en "int" , l'instruction "Serial.println(Variable)" me renvoie bien la valeur en chiffre.
Qui peux m'expliquer la raison ?
Puis je utiliser malgré tout la variable byte pour faire des calculs ?
Merci d'avance pour votre aide.
A+