==== ALGORITHMIE ET PROGRAMMATION ====
**Correction de l'exercice LDR**
{{ https://www.tinkercad.com/things/b23EPZ4hgf8-etude-de-la-ldr | Lien activité TinkerCAD}}
// C++ code
//
void setup()
{
pinMode(3,OUTPUT);
Serial.begin(9600);
}
void loop()
{
int ldr = analogRead(A0);
float lux = 4.705 * ldr - 2648;
if (lux < 200) {
digitalWrite(3,HIGH);
} else if (lux > 600) {
digitalWrite(3,LOW);
}
Serial.print("Tension LDR: ");
Serial.print(ldr);
Serial.print(" , LUX: ");
Serial.println(lux);
}
{{ ::ldr.png |}}
{{https://mistert.freeboxos.fr//cours/1sti2d_it/prog/Arduino Vittascience.pdf}}
{{https://fr.vittascience.com/arduino/?mode=mixed&console=bottom&toolbox=vittascience&board=uno | Site VittaScience}}
{{https://wokwi.com/projects/375144550969032705 | Site Wokwi}}
{{https://mistert.freeboxos.fr/circuit/circuitjs.html | Circuits électroniques}}
==== Piloter un moteur avec arduino ====
https://www.tinkercad.com/joinclass/R9FK9NZYE
{{ https://mistert.freeboxos.fr//cours/2SiCit/commande_moteur.png?800 }}
**Objectifs attendus:**
- Comprendre comment la vitesse est contrôlée grâce à la technologie PWM ;
- inverser le sens de rotation d'un moteur en jouant sur les valeurs MOTEUR1_IN1 et MOTEUR2_IN2;
- faire un graphique Vitesse, Tension en faisant varier le paramètre transmis à MOTEUR1_EN de 0 à 255 (dans ce code il est à 62);
- brancher le deuxième moteur et proposer le code pour tourner à gauche, à droite, avancer, reculer.
Se rendre sur la classe TinkerKad:
// C++ code
//
#define MOTEUR1_EN 6
#define MOTEUR1_IN1 7
#define MOTEUR1_IN2 5
void avancer() {
analogWrite(MOTEUR1_EN, 62);
digitalWrite(MOTEUR1_IN1, HIGH);
digitalWrite(MOTEUR1_IN2, LOW);
delay(200);
}
void setup() {
pinMode(MOTEUR1_EN, OUTPUT);
pinMode(MOTEUR1_IN1, OUTPUT);
pinMode(MOTEUR1_IN2, OUTPUT);
}
void loop() {
avancer();
delay(500);
}
**Fonctionnement du contrôleur moteur L293D:**
{{ https://electropeak.com/learn/wp-content/uploads/2018/08/Diagraml-1200.jpg?800 }}
https://www.tinkercad.com/things/8gpHB1obZhl-pir-sensor-example