ajout des maths, archi et PPP

master
Antoine PEREDERII 2 years ago
parent 2a32850446
commit c0c78885e5

@ -0,0 +1,121 @@
#define MOTORMIN 90
#define MOTORMAX 250
#define MOTORSTART 200
int motorPin = 9;
int speedUpPin = 7;
int speedDownPin = 6;
int speed;
int ledoutPin=5;
int emergencyPin=2;
/* ------------------------------------------------------------------
* Démarre le moteur en commençant pas envoyer
* une impulsion un peu forte sinon il n'y a pas assez de puissance
* pour lancer la machine. Une fois lancé, il est possible de limiter
* la puissance et donc la vitesse
* ------------------------------------------------------------------
*/
void motorSet(int value) {
if ( value < MOTORSTART ) {
analogWrite(motorPin, MOTORSTART);
delay(50);
}
analogWrite(motorPin, value);
}
// // Demarre le moteur avec un signal PWM permettant de fixer la vitesse
// void motorSet(int value) {
// analogWrite(motorPin, value);
// }
// Arret le moteur
void motorStop() {
analogWrite(motorPin,0);
}
// nouveau setup
void setup() {
pinMode(motorPin, OUTPUT);
pinMode(speedUpPin, INPUT_PULLUP);
pinMode(speedDownPin, INPUT_PULLUP);
pinMode(ledoutPin, OUTPUT);
pinMode(emergencyPin, INPUT);
speed = MOTORMIN;
motorStop();
pinMode(ledoutPin, OUTPUT);
pinMode(emergencyPin, INPUT);
digitalWrite(emergencyPin, HIGH); // force internal pullup
attachInterrupt(0,emergencyStop,FALLING);
clearEmergencyLed();
Serial.begin(9600);
}
void setEmergencyLed() {
digitalWrite(ledoutPin,HIGH);
}
void clearEmergencyLed() {
digitalWrite(ledoutPin,LOW);
}
/* ------------------------------------------------------------------
* Interruption déclenchée par l'appuie sur le bouton darrêt d'urgence
* ------------------------------------------------------------------
*/
void emergencyStop() {
motorStop();
speed = MOTORMIN;
setEmergencyLed();
}
// // Arduino Setup
// void setup() {
// pinMode(motorPin, OUTPUT);
// motorStop();
// Serial.begin(9600);
// motorSet(64);
// }
// Arduino loop
void loop() {
if ( digitalRead(speedUpPin) == LOW ) {
clearEmergencyLed();
speed += 10;
if ( speed > MOTORMAX ) speed = MOTORMAX;
motorSet(speed);
Serial.print("UP ");
Serial.println(speed);
}
if ( digitalRead(speedDownPin) == LOW ) {
clearEmergencyLed();
speed -=10;
if ( speed <= MOTORMIN ) {
speed = MOTORMIN;
motorStop();
} else {
motorSet(speed);
}
Serial.print("DOWN ");
Serial.println(speed);
}
delay(500);
// delay(1000);
}
// Essayez le programme en remplaçant XXX par les valeurs 220, 150, 64. Essayez éventuellement de lancer le moteur à la main. Que constatez-vous?
// 220 Il tourne comme une horloge
// 150 Il faut le lancer mais c'est bon
// 64 Meme en lancant, il veut pas#define MOTORMIN 80
// Maintenant, essayez de nouveaux avec des valeurs 200, 80, 64 . Que constatez-vous ?
// jusque 80 ca passe

@ -0,0 +1,51 @@
// intégration de la bibliothèque
#include <LiquidCrystal.h>
int cpt, i=1;
int max = 21;
int buzzer = 6;
// initialisation de la bibliothèque LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// Le LCD a 16 char sur 2 lignes
lcd.begin(16, 2);
pinMode(buzzer, OUTPUT);
// Envoi d'un message au LCD
lcd.print("Compteur");
lcd.setCursor(0, 1);
lcd.print(" ");
attachInterrupt(0,emergencyStop,FALLING);
Serial.begin(9600);
}
void minTemp() {
digitalWrite(buzzer, 600);
}
// void loop() {
// for(;i < max; i++) {
// lcd.setCursor(0, 1);
// lcd.print(i);
// delay(500);
// lcd.print(" ");
// }
// lcd.clear();
// lcd.print("Compteur fini !");
// }
void loop() {
sensorValue = analogRead(A0);
lcd.setCursor(0, 1);
lcd.print(sensorValue);
lcd.print(" ")
}
// Modifiez votre code pour que la première ligne affiche “Compteur” et la deuxième ligne affiche un compteur de 1 à 20 s'incrémentant toutes les secondes.
// Faites afficher ce compteur tout à droite de la deuxième ligne.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save