Bonjour tout le petit monde ca va bien?
alors aujourd'hui le but est de trouver ce qu'il y a(ou a pas) dans mon code pour que mon systeme fonctionne. Ca fait qd meme un ptit moment que je buche dessus et comme personne en a fait de comme ca a ce que j'ai vu eh bien c'est aps trop évident. :-/
Il s'agit d'utiliser arduino pour déverrouiller (envoyer un signal a un relais 5v) suite a l'entrée d'une bonne combinaison de 6 chiffres (dans le présent programme c'est 6-6-6-6-6-6).
La circuiterie fonctionne entierement (merci Mr bisson! ;D) mais le probleme réside dans le code
voila le monstre! (certains trucs sont inutiles mais sont présente pr le débuggage)
HEHE
/*
- Analyse analogue suivit de calcul logique pour détermienr la touche pressée.
*/
int nba ; //nb actif
int swt = 5; // Ligne des commutateurs
int val ; //Valeur lue sur la ligne de commutateurs
int nb0 = 12 ; //Lumiere pour le nombre 0
int nb1 = 13 ; //Lumiere pour le nombre 1
int nb2 = 2 ; //Lumiere pour le nombre 2
int nb3 = 3 ; //Lumiere pour le nombre 3
int nb4 = 4 ; //Lumiere pour le nombre 4
int nb5 = 5 ; //Lumiere pour le nombre 5
int nb6 = 6 ; //Lumiere pour le nombre 6
int nb7 = 7 ; //Lumiere pour le nombre 7
int nb8 = 8 ; //Lumiere pour le nombre 8
int nb9 = 9 ; //Lumiere pour le nombre 9
int LO = 10; //Lumiere pour systeme Verrouillé
int UL = 11; //Lumiere pour systeme Déverrouillé
int State =0; //état du verrou 1=ouvert 0=fermé
byte C[7]; //variables du password.
byte i=1 ; //définie la variable d'incrémentale
void setup() {
pinMode(swt, INPUT);
pinMode(nb0, OUTPUT);
pinMode(nb1, OUTPUT);
pinMode(nb2, OUTPUT);
pinMode(nb3, OUTPUT);
pinMode(nb4, OUTPUT);
pinMode(nb5, OUTPUT);
pinMode(nb6, OUTPUT);
pinMode(nb7, OUTPUT);
pinMode(nb8, OUTPUT);
pinMode(nb9, OUTPUT);
pinMode(LO, OUTPUT);
pinMode(UL, OUTPUT);
Serial.begin(9600);
digitalWrite(nb0,LOW);
digitalWrite(nb1,LOW);
digitalWrite(nb2,LOW);
digitalWrite(nb3,LOW);
digitalWrite(nb4,LOW);
digitalWrite(nb5,LOW);
digitalWrite(nb6,LOW);
digitalWrite(nb7,LOW);
digitalWrite(nb8,LOW);
digitalWrite(nb9,LOW);
}
void loop(){
if (i==7 &&C[1]==6&&C[2]==6&&C[3]==6&&C[4]==6&&C[5]==6&&C[6]==6);
State=1;
if (i==7 &&C[1]!=6||C[2]!=6||C[3]!=6||C[4]!=6||C[5]!=6||C[6]!=6);
{
i=1;
State=0;
}
if (State==0);
{
digitalWrite(UL,LOW);
digitalWrite(LO,HIGH);
}
if (State==1);
{
digitalWrite(UL,HIGH);
digitalWrite(LO,LOW);
}
val = analogRead(swt); // lit la valeur de la ligne des commutateurs et l'attribue a la variable val
{
if (val > 40); //vérifie si une touche est pressée
{
if (val > 40 && val < 143);
nba = 9;
if (val > 164 && val < 246);
nba = 8;
if (val > 266 && val < 348);
nba = 7;
if (val > 368 && val < 451);
(nba = 6);
if (val > 471 && val < 553);
(nba = 5);
if (val > 573 && val < 655);
(nba = 4);
if (val > 676 && val < 758);
(nba = 3);
if (val > 778 && val < 860);
(nba = 2);
if (val > 880 && val < 963);
(nba = 1);
if (val > 983 && val < 1024);
(nba = 0);
C*=nba;*
- i=i+1;*
- delay(500); *
- }*
- delay(10); *
- }*
- Serial.println(val);*
- Serial.println(nba);*
}
Le probleme principal qui bloque le tout présentement c'est que la variable nba ne devient jamais qlque choz autre que 0
Donc qd je vérifie via le serial que mes différents voltages entre et sont convertits pr swt ca fonctionne sauf un ptit truc..
Le truc étant que jarrive pas a faire 0 en entrée avec mon systeme de switch alors qun potentiometre lui peut.
Jai 10 interupteurs qui recoivent tous un certains voltage (0,5 a 5 en incrément de 0,5 volt-->de la les marges pour lidentification) et qui le apssent au capteur 5 analog qui lui détermine quel interrupteur est actionné et store cette valeur incr.mente et ainsi de suite....quelqun peut bien me prendre par la main,réviser mon code et me dire comment le faire fonctionner?