Go Down

Topic: Programmtion arduino (Read 1 time) previous topic - next topic

akyb

Bonjour, j'espere que je suis sur le bon forum.
je suis actuellement sur un projet electronique concernant la programmation arduino .
j'ai pu faire un programme qui avait pour but  d'allumer une LED branchée sur la broche 9 dont L'intensité lumineuse sera proportionnelle à la luminosité captée par la photorésistance branchée sur la broche A0.
Code: [Select]
const int analogInPin = A0;
const int analogOutPin = 9;
 
// Valeur lue sur la photorésistance
int sensorValue = 0;
// Valeur envoyée à la LED
int outputValue = 0;
 
void setup() {
  Serial.begin(9600);
   
  pinMode(analogOutPin, OUTPUT);     
  pinMode(analogInPin, INPUT);   
}
 
void loop() {
  sensorValue = analogRead(analogInPin);           
  outputValue = map(sensorValue, 0, 1023, 0, 255);
  analogWrite(analogOutPin, outputValue);         
 
  // envoie tout ça vers l'ordinateur
  Serial.print("sensor = " );                     
  Serial.print(sensorValue);     
  Serial.print("\t output = ");     
  Serial.println(outputValue);
}

ce programme marche tres bien mais mon probleme est que je veux utiliser deux LED rouge et vert au lieu d'une seule LED.

dont le fonctionemment searit :

lorsque que nous somme au jour la led rouge d'allume pendant  20 s et la led verte est eteinte ensuite lorsque nous passons a la nuit  la led verte s'allume 5s  et la led rouge eteinte un truc de cet genre .

J-M-L

Bonsoir

Et donc votre code pour faire cela ressemble à quoi? Qu'avez vous essayé?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

68tjs

#2
Jun 10, 2017, 09:47 pm Last Edit: Jun 10, 2017, 09:50 pm by 68tjs
Sur quel critère décides tu que c'est le jour ou la nuit ?
Soit c'est sur l'heure et il te faudrait une horloge, penses à une DS3231 et évite la Ds1307 qui dérive trop.
Soit c'est sur la luminosité mais comment vas tu distinguer la tombée de la nuit par ciel clair et le jour avec un ciel d'orage ?

à J-M-L
Excuse moi  mais je pense qu'avant de commencer à coder il faut bien poser le sujet sur le papier.
Et je pense qu'akib n'a pas terminé cette phase.

à akib
Il faut définir les critères et choisir le matériel qui permette de les satisfaire.
Il faut écrire en français ce que tu veux faire. Pour chaque action il faut bien noter les conditions à remplir.
Par exemple si tu utilise la variable "jour"
Jour = 1 --> on est dans la journée
Jour = 0 --> on est la nuit
Si jour = 1 alors couleur_led = vert
Sinon couleur_led = rouge
Ce qui pourra se traduire par :
Code: [Select]
if (jour==1){
digitalwrite(led_verte, HIGH);
}
else {
digitalWrite(led_rouge, HIGH) ;
}


Si tu es clair sur le papier le programme sera simple à écrire. Ce sera principalement des variables à affecter, des boucles if, for ou while.

Dernier point : ne teste qu'une nouvelle action à la fois.
Si tu veux tester du matériel ou des possibilités du C que tu as découvert dans un tuto, écris un petit programme par test et ne le transfère dans ton "vrai" programme que quand tout fonctionne.
Tu ne fera que perdre du temps à vouloir en gagner en travaillant directement sur le "gros" programme.

ULTIME POINT                  Utilise le tuto d'Eskimon

J-M-L

@68tjs - Oui - ma question était à but exploratoire - voir s'il avait déjà réfléchi  ce que jour et nuit veulent dire par exemple ou comment gérer le temps

(Sinon n'oubliez pas de passer à LOW l'autre LED dans votre code d'exemple)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

akyb

bonjour, merci pour vos reposes je prendrai en compte vos critiques

68tjs

Ce ne sont absolument pas des critiques dans le sens péjoratif du terme.
Ce sont des conseils.

akyb

bonjour, d'accord c'est compris

akyb

j'ai une question un epu biazarre est-il possible de brancher deux LED sur une meme broche du genre
const  int LED1 =2;
const int LED2 = 2;
si oui
et est que l'action sur un provoque la meme action sur l'autre.

kamill

#8
Jun 16, 2017, 04:46 pm Last Edit: Jun 16, 2017, 04:46 pm by kamill
Bonjour,
j'ai une question un epu biazarre est-il possible de brancher deux LED sur une meme broche du genre
const  int LED1 =2;
const int LED2 = 2;
Oui, mais je ne vois oas trop l'intérêt de déclarer 2 fois la même constante.

et est que l'action sur un provoque la meme action sur l'autre.
Oui, bien sur puisque c'est la même pin

akyb

L'intérêt est que j'utilise des LED pour faire fonctionner un carrefour à feux tricolores, le carrefour est composé de 4 voies et la raison pour  laquelle je veux mettre deux LED sur une même broche est que lorsqu'une voie est au rouge il n'a une qui est rouge .. Donc je me suis demandé pourquoi ne pas les lier ,

akyb

Et aussi si je veux utiliser chaque LED pour une broche j'en aurais besoin de 12 et comme j'ai aussi des Boutons poussoirs pourtant mon Arduino n'en possède pas plus ..

kamill

Rien ne t'empêche de connecter 2 leds sur la même broche (si ce n'est le courant limité que peut fournir la pin), ce n'est pas la peine de définir deux fois la pin.

akyb

Rien ne t'empêche de connecter 2 leds sur la même broche (si ce n'est le courant limité que peut fournir la pin), ce n'est pas la peine de définir deux fois la pin.
c'est pas la peine de définir deux fois là pin , je ne comprend pas trop !

kamill

#13
Jun 16, 2017, 08:15 pm Last Edit: Jun 16, 2017, 08:15 pm by kamill
const  int LED1 =2;
const int LED2 = 2;
Ca c'est définir deux fois la même pin
LED2 ne sert à rien

akyb

Ca c'est définir deux fois la même pin
LED2 ne sert à rien
Si je comprend bien je défini une seule LED dans le code mais dans la pratique je connecte l'autre LED sur la même broche que celle défini dans le code , c'est ça ?

Go Up