Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
wiki:projets:titrimetre2:programmation [2016/03/08 22:10] BAPTISTE Benoit |
wiki:projets:titrimetre2:programmation [2016/09/11 11:15] (Version actuelle) |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
=====Partie programmation===== | =====Partie programmation===== | ||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | <WRAP group> | ||
- | <WRAP half column> | ||
- | **Ecran LCD : Hello world**\\ | ||
- | * Montage : \\ | ||
- | {{ :wiki: | + | Voici le programme finale |
+ | {{: | ||
- | * Programme : \\ | ||
- | <WRAP round box 100%> | ||
- | |||
- | /* | ||
- | LiquidCrystal Library - display() and noDisplay() | ||
- | | ||
- | Demonstrates the use a 16x2 LCD display. | ||
- | that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you | ||
- | can usually tell them by the 16-pin interface. | ||
- | | ||
- | This sketch prints "Hello World!" | ||
- | display() and noDisplay() functions to turn on and off | ||
- | the display. | ||
- | | ||
- | The circuit: | ||
- | * LCD RS pin to digital pin 12 | ||
- | * LCD Enable pin to digital pin 11 | ||
- | * LCD D4 pin to digital pin 5 | ||
- | * LCD D5 pin to digital pin 4 | ||
- | * LCD D6 pin to digital pin 3 | ||
- | * LCD D7 pin to digital pin 2 | ||
- | * LCD R/W pin to ground | ||
- | * 10K resistor: | ||
- | * ends to +5V and ground | ||
- | * wiper to LCD VO pin (pin 3) | ||
- | | ||
- | Library originally added 18 Apr 2008 | ||
- | by David A. Mellis | ||
- | library modified 5 Jul 2009 | ||
- | by Limor Fried (http:// | ||
- | example added 9 Jul 2009 | ||
- | by Tom Igoe | ||
- | modified 22 Nov 2010 | ||
- | by Tom Igoe | ||
- | | ||
- | This example code is in the public domain. | ||
- | | ||
- | http:// | ||
- | | ||
- | */ | ||
- | | ||
- | // include the library code: | ||
- | #include < | ||
- | | ||
- | // initialize the library with the numbers of the interface pins | ||
- | LiquidCrystal lcd(12, 11, 5, 4, 3, 2); | ||
- | | ||
- | void setup() { | ||
- | // set up the LCD's number of columns and rows: | ||
- | lcd.begin(16, | ||
- | // Print a message to the LCD. | ||
- | lcd.print(" | ||
- | } | ||
- | | ||
- | void loop() { | ||
- | // Turn off the display: | ||
- | lcd.noDisplay(); | ||
- | delay(500); | ||
- | // Turn on the display: | ||
- | lcd.display(); | ||
- | delay(500); | ||
- | } | ||
- | | ||
- | {{ : | ||
- | |||
- | </ | ||
- | |||
- | **Montage 3 LEDs + capteur **\\ | ||
- | |||
- | * Montage : \\ | ||
- | |||
- | {{ : | ||
- | |||
- | |||
- | * Programme : \\ | ||
- | |||
- | Le programme étant trop long, voici le lien où nous l' | ||
- | \\ | ||
- | http:// | ||
- | |||
- | |||
- | </ | ||
- | |||
- | <WRAP half column> | ||
- | **Clavier**\\ | ||
- | |||
- | * Montage : \\ | ||
- | |||
- | {{ : | ||
- | |||
- | * Programme : \\ | ||
- | <WRAP center round box 100%> | ||
- | #include < | ||
- | | ||
- | const byte ROWS = 4; //nombre de lignes | ||
- | const byte COLS = 4; //nombre de colonnes | ||
- | char keys[ROWS][COLS] = { | ||
- | {' | ||
- | {' | ||
- | {' | ||
- | {' | ||
- | }; | ||
- | byte rowPins[ROWS] = {9, 8, 7, 6}; //entrées numériques où sont branchées les lignes | ||
- | byte colPins[COLS] = {5, 4, 3, 2}; //entrées numériques où sont branchées les colonnes | ||
- | | ||
- | Keypad keypad = Keypad( makeKeymap(keys), | ||
- | | ||
- | void setup(){ | ||
- | keypad.setDebounceTime(500); | ||
- | Serial.begin(9600); | ||
- | } | ||
- | |||
- | void loop(){ | ||
- | char key = keypad.getKey(); | ||
- | | ||
- | if (key != NO_KEY){ | ||
- | Serial.println(key); | ||
- | } | ||
- | } | ||
- | </ | ||
- | \\ | ||
- | \\ | ||
- | </ | ||
- | </ | ||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | <WRAP center round todo 90%> | ||
- | |||
- | |||
- | // | ||
- | | ||
- | #include < | ||
- | Stepper moteur(200, 2, 3, 4, 5); //nb pas par tour, 4 pin | ||
- | | ||
- | #include < | ||
- | LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //6 pin | ||
- | | ||
- | #include < | ||
- | const byte ROWS = 4; //nb lignes | ||
- | const byte COLS = 3; //nb colonnes | ||
- | char keys[ROWS][COLS] = { | ||
- | {' | ||
- | {' | ||
- | {' | ||
- | {' | ||
- | }; | ||
- | byte rowPins[ROWS] = {9, 8, 7, 6}; //4 pin | ||
- | byte colPins[COLS] = {5, 4, 3}; //3 pin | ||
- | Keypad keypad = Keypad( makeKeymap(keys), | ||
- | | ||
- | const int capteur_moteur = 1; //1 pin | ||
- | const int agitateur = 2; //1 pin | ||
- | const int capteur_lumiere = 3; //1 pin | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | void setup() { | ||
- | lcd.begin(16, | ||
- | lcd.print(" | ||
- | delay(100); | ||
- | lcd.clear(); | ||
- | keypad.setDebounceTime(20); | ||
- | moteur.setSpeed(30); | ||
- | } | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | void loop(){ | ||
- | bool eta = false; | ||
- | char couleur = ' | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | while (eta != true){ | ||
- | char touche = keypad.getKey(); | ||
- | if (touche != NO_KEY){ | ||
- | lcd.print(touche); | ||
- | couleur = touche; | ||
- | } | ||
- | if ((couleur = ' | ||
- | if (touche = '#' | ||
- | eta = true; | ||
- | } | ||
- | } | ||
- | } | ||
- | eta=false; | ||
- | lcd.clear(); | ||
- | | ||
- | String co = String(); | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | while (eta != true){ | ||
- | char touche = keypad.getKey(); | ||
- | if (touche = ' | ||
- | co = ""; | ||
- | lcd.clear(); | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | } | ||
- | else if (touche != NO_KEY && touche != '#' | ||
- | co += touche; | ||
- | lcd.print(co); | ||
- | } | ||
- | if (touche = '#' | ||
- | eta=true; | ||
- | } | ||
- | } | ||
- | co.toFloat(); | ||
- | lcd.clear(); | ||
- | eta=false; | ||
- | | ||
- | | ||
- | | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | moteur.setSpeed(30); | ||
- | while (digitalRead(capteur_moteur) != HIGH){ | ||
- | moteur.step(10); | ||
- | } | ||
- | lcd.print(" | ||
- | delay(200); | ||
- | lcd.clear(); | ||
- | | ||
- | | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | while (analogRead(agitateur) == 1023){} | ||
- | lcd.print(" | ||
- | delay(200); | ||
- | lcd.clear(); | ||
- | | ||
- | | ||
- | | ||
- | int lum0; | ||
- | int lum1; | ||
- | int lum2; | ||
- | int diff; | ||
- | int courant; | ||
- | lcd.print(" | ||
- | while (eta != true){ | ||
- | char touche = keypad.getKey(); | ||
- | if (touche == '#' | ||
- | eta = true; | ||
- | } | ||
- | } | ||
- | digitalWrite(couleur, | ||
- | lum0 = analogRead(capteur_lumiere); | ||
- | for (int i=0; i<200; i++){ | ||
- | digitalWrite(couleur, | ||
- | lum1 = analogRead(capteur_lumiere); | ||
- | if (abs(lum1-lum2)> | ||
- | diff = abs(lum1-lum2); | ||
- | courant = i; | ||
- | } | ||
- | } | ||
- | lcd.print(courant); | ||
- | | ||
- | | ||
- | } | ||
- | | ||
- | </ | ||