Débutant nul de chez nul !

J'allais pouvoir faire des tas de choses avec Arduino ! Tu parles ! 3 lignes de programme et je suis planté !
Il y a forcément la grosse bourde que commettent tous les débutants mais je ne vois pas.

void setup() {

int sensorPin = A0;
int sensorValue = 0;

}

void loop() {
sensorValue = analogRead(sensorPin);

}

Pourquoi est-ce que la compilation me mène au message d'erreur :
exit status 1
'sensorValue' was not declared in this scope
?

J'ai beau essayer de lire à droite et à gauche, y compris dans "Arduino pour les nuls"... je suis encore plus nul !

Si vous pouvez m'aider, merci par avance.

Si la variable est déclarée dans une fonction elle n'est pas visible des autres fonctions.

const uint8_t sensorPin = A0;

void setup() {
}

void loop()
{
  int sensorValue = analogRead(sensorPin);
}

ou

J'allais pouvoir faire des tas de choses avec Arduino !

Oui tu va pouvoir mais à condition de ne pas mettre la charrue avant les bœufs.

Question : tu as pris directement le volant d'une voiture sans prendre de cours avant ?
Au ski tu as pris directement une remontée mécanique qui t'as déposé au sommet d'une piste noire ?

Sur ce forum tu as tout pour bien débuter :

  • des messages épinglés qui disent ce qu'il faut faire pour bien débuter et pour respecter les règles de ce forum : les balises pour le code par exemple.
  • un conseil pour un tuto indispensable celui d'Eskimon : ultra pédagogique tant sur la programmation que la gestion du matériel.

Et puis le langage utilisé pour la programmation aveec l'IDE arduino n'est rien d'autre que du C ou du C++.
Autant en apprendre l'essentiel avec un tuto de C pour débutant, tu gagnera énormément de temps.

68tjs:
Question : tu as pris directement le volant d'une voiture sans prendre de cours avant ?
Au ski tu as pris directement une remontée mécanique qui t'as déposé au sommet d'une piste noire ?

Schumacher se met à l'arduino ? ;D
(ok je sors)

déclarations variables globales en dehors du setup

  int sensorPin = A0;
  int sensorValue = 0;


void setup() {
  // put your setup code here, to run once:

}

void loop() {
  int sensorValue = analogRead(sensorPin);
}

quand on utilise digitalWrite et digitalRead, il faut aussi déclarer les sorties/entrées des pins utilisées dans le setup OUTPUT ou INPUT
avec les pins analogiques et analogRead ce n'est pas nécessaire, et se méfier de la fonction analogWrite qui n'a rien à voir avec les pins analogiques, applicable uniquement aux pins PWM

C'est ce qu'hbacheti a relevé : la visibilité des variables.
C'est pour bien comprendre ce point essentiel qu'il faut lire un tutoriel d'initiation au C et ne pas se contenter de la doc arduino.
Ce n'est pas limité aux variables globales :une variable déclarée dans une boucle for ne sera visible qu'à l'intérieur de cette boucle.

Question : tu as pris directement le volant d'une voiture sans prendre de cours avant ?

C'est un problème récurrent sur ARDUINO.
Les nouveaux pensent pouvoir attaquer un projet sans connaissances.
Hélas ... cela ne marche pas comme ça.

Tout a été dis , c’est un soucis de portée de variables ; chaque variables n’est visible que dans son bloc

{ ici c’est le bloc ! } en dehors , ce n’est plus le bloc … je ne connais plus la variable .

si une variable doit être visible partout , il faut la déclarer hors de loop et setup (ou de toutes autres fonctions que tu déclareras )

#include <arduino.h>

int maPremiereVariable;

setup(){

Serial.begin(9600);            //on initialise le port serie sur 9600baud
int maSecondeVariable;

}

loop(){

Serial.print(maPremiereVariable);

Serial.print(maSecondeVariable);

}

Dans ce bout de code , maPremiereVariable sera connu , un 0 sera affiche sur le moniteur série car on a initialise cette variable sans lui attribuer une valeur .

en revanche , et c’est le soucis que tu as : maSecondeVariable elle n’est visible que dans le bloc setup !
Donc ton code ne va pas compiler …

Quand tu as un doute sur la logique de ton code n’hésites pas a jouer avec ce Serial.print(); il est très utile pour debuguer ton code , tester la logique ou même comprendre le fonctionnement du C et des portées de variables …

ce forum est en effet une très bonne école ! (Mais n’oubli pas les tutos déjà existants, réalise des exercices, même s’ils n’ont rien a voir avec ton code actuel, ils t’apporterons les connaissances de bases)

Limp47:
réalise des exercices, même s'ils n’ont rien a voir avec ton code actuel, ils t’apporterons les connaissances de bases

je plussoie