Programmtion arduino

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.

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 .

Bonsoir

Et donc votre code pour faire cela ressemble à quoi? Qu'avez vous essayé?

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 :

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

@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)

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

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

bonjour, d'accord c'est compris

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.

Bonjour,

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;

Oui, mais je ne vois oas trop l’intérêt de déclarer 2 fois la même constante.

akyb:
et est que l'action sur un provoque la meme action sur l'autre.

Oui, bien sur puisque c'est la même pin

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 ,

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 ..

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.

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.

c'est pas la peine de définir deux fois là pin , je ne comprend pas trop !

akyb:
const int LED1 =2;
const int LED2 = 2;

Ca c'est définir deux fois la même pin
LED2 ne sert à rien

kamill:
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 ?

Le code c'est le code - il n'a rien à voir avec les objets physiques

Vous dites à la broche 2 de passer à 5V et d'envoyer du courant elle le fait et envoie du jus à tout ce qui est connecté physiquement sur cette "prise électrique" - l'arduino ne sait pas si c'est une led un moteur ou une banane qui est connecté derrière... le nom de la variable pourrait être différent que ça marcherait pareil

Autre façon de voir - quand vous appuyez sur un interrupteur chez vous, l'interrupteur ne sait pas ce qui est connecté au bout des fils, il sait juste qu'il faut envoyer le 220, s'il y a deux lampes les 2 s'allument, s'il n'y en a qu'une alors une seule s'allume - l'interrupteur s'en fiche ...

C'est pareil pour votre arduino

Ok?

kamill:
Ca c'est définir deux fois la même pin
LED2 ne sert à rien

Je veux aussi faire allumer la LED2 , en la connectant sur ma même broche 2, doonc comment je fais

J-M-L:
Le code c'est le code - il n'a rien à voir avec les objets physiques

Vous dites à la broche 2 de passer à 5V et d'envoyer du courant elle le fait et envoie du jus à tout ce qui est connecté physiquement sur cette "prise électrique" - l'arduino ne sait pas si c'est une led un moteur ou une banane qui est connecté derrière... le nom de la variable pourrait être différent que ça marcherait pareil

Autre façon de voir - quand vous appuyez sur un interrupteur chez vous, l'interrupteur ne sait pas ce qui est connecté au bout des fils, il sait juste qu'il faut envoyer le 220, s'il y a deux lampes les 2 s'allument, s'il n'y en a qu'une alors une seule s'allume - l'interrupteur s'en fiche ...

C'est pareil pour votre arduino

Ok?

Mais comment dire à broche 2 ce quel doit faire ? Je comprend bien ce que vous dites , mais je ne vois pas comment m'y prendre

Oui, mais attention à la limite de courant de la pin

Commencez par le début et allez lire les tutos d'eskimon