
J'avais pas fais gaffe que des robots se nommaient déjà comme sa, tant pis, je trouverai un autre nom, mais après sa c'est un détail !
Il y a 60 élément(s) pour Valent81320 (recherche limitée depuis 17-juillet 14)
Posté par
Valent81320
sur 27 mai 2012 - 01:44
dans
Archives
Posté par
Valent81320
sur 26 mai 2012 - 11:32
dans
Archives
Posté par
Valent81320
sur 26 mai 2012 - 09:44
dans
Archives
Posté par
Valent81320
sur 25 mai 2012 - 06:45
dans
Archives
Posté par
Valent81320
sur 24 mai 2012 - 10:06
dans
Archives
Posté par
Valent81320
sur 14 avril 2012 - 08:37
dans
Programmation
Posté par
Valent81320
sur 14 avril 2012 - 09:27
dans
Programmation
Posté par
Valent81320
sur 13 avril 2012 - 06:36
dans
Programmation
Posté par
Valent81320
sur 09 avril 2012 - 08:47
dans
Programmation
Posté par
Valent81320
sur 09 avril 2012 - 10:19
dans
Programmation
Posté par
Valent81320
sur 09 avril 2012 - 09:16
dans
Programmation
Posté par
Valent81320
sur 08 avril 2012 - 07:18
dans
Programmation
Posté par
Valent81320
sur 08 avril 2012 - 02:34
dans
Programmation
#include <stdlib.h> #include <stdio.h> #include <Metro.h> #include <LiquidCrystal.h> const int RS=12; const int E=11; const int D4=5; const int D5=4; const int D6=7; const int D7=6; LiquidCrystal lcd(RS, E, D4, D5, D6, D7); Metro ledMetro = Metro(3000); int pos_rad_BP; int pos_deg_BP; int pos_rad1_BP; int pos_deg1_BP; int vitesse_BP; int vitesse; int pos_rad; int pos_deg; int pos_deg1; int pos_rad1; int nbre_impulsion; int nbre_impulsion1; int nbre_impulsion_vitesse; volatile int front_montant = LOW; int BPState = 8; void setup() // fonction setup - début de l'exécution du programme { Serial.begin(9600); lcd.begin(20,4); attachInterrupt(0, counter, RISING); attachInterrupt(1, positionBP, RISING); pinMode(BPState, INPUT); lcd.setCursor(0,0); lcd.print(" PROJET DE PPE "); lcd.setCursor(0,1); lcd.print(" 2011 - 2012 "); lcd.setCursor(0,2); lcd.print(" PUJOL-STOECKLIN "); lcd.setCursor(0,3); lcd.print(" SYLVAIN-WOZNIAK "); delay(4000); lcd.clear(); delay(10); } void counter() { ++nbre_impulsion; ++nbre_impulsion1; ++nbre_impulsion_vitesse; } void positionBP() { pos_rad_BP = pos_rad; pos_deg_BP = pos_deg; vitesse_BP = vitesse; pos_rad1_BP = pos_rad1; pos_deg1_BP = pos_deg1; } void loop() { lcd.clear(); int BP = digitalRead(8); if (BP == HIGH) { while (pos_deg <= 90) { lcd.clear(); if (ledMetro.check() != 1) { vitesse = ((nbre_impulsion_vitesse*(3.14/2)/90)/2)*1000; pos_rad = (nbre_impulsion*(3.14/2)/90)*1000; pos_deg = nbre_impulsion; lcd.setCursor(0,0); lcd.print("POS DEG: "); lcd.setCursor(10,0); lcd.print(pos_deg); lcd.setCursor(0,1); lcd.print("POS MRAD: "); lcd.setCursor(10,1); lcd.print(pos_rad); lcd.setCursor(0,2); lcd.print("vitesse :"); lcd.setCursor(10,2); lcd.print(vitesse); } if (ledMetro.check() == 1) { nbre_impulsion_vitesse = 0; lcd.clear(); delay(100); } } while (pos_deg >= 90) { lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (100); lcd.clear(); lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (15000); lcd.clear(); } } if(BP == LOW) { pos_deg1 = 90-(nbre_impulsion); while (pos_deg1 > 0) { lcd.clear(); if (ledMetro.check() != 1) { vitesse = ((nbre_impulsion_vitesse*(3.14/2)/90)/2)*1000; pos_rad1 = ((3.14/2)-(nbre_impulsion*(3.14/2)/90))*1000; pos_deg1 = 90-nbre_impulsion; lcd.setCursor(0,0); lcd.print("POS DEG: "); lcd.setCursor(10,0); lcd.print(pos_deg1); lcd.setCursor(0,1); lcd.print("POS MRAD: "); lcd.setCursor(10,1); lcd.print(pos_rad1); lcd.setCursor(0,2); lcd.print("vitesse :"); lcd.setCursor(10,2); lcd.print(vitesse); } if (ledMetro.check() == 1) { nbre_impulsion_vitesse = 0; lcd.clear(); delay(100); } } while (pos_deg1 <= 0) { lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg1_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad1_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (100); lcd.clear(); lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg1_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad1_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (15000); lcd.clear(); } } }
Posté par
Valent81320
sur 29 février 2012 - 10:49
dans
Electronique
Posté par
Valent81320
sur 29 février 2012 - 10:40
dans
Programmation
Posté par
Valent81320
sur 29 février 2012 - 10:34
dans
Archives
Oui je veux bien
Merci
Posté par
Valent81320
sur 28 février 2012 - 09:01
dans
Archives
Posté par
Valent81320
sur 28 février 2012 - 08:59
dans
Archives
Posté par
Valent81320
sur 27 février 2012 - 05:42
dans
Archives
Posté par
Valent81320
sur 27 février 2012 - 05:41
dans
Archives
Voila un exemple d'un morceaux de programme pour un bouton poussoir , ça peux te servir je pense.
int LED = 13; // choisir la broche pour la LED int BOUTON = 3; // Branchez le bouton poussoir a la broche 3 broches digital void setup() { pinMode(LED, OUTPUT); // déclare la LED en ( sortie ) pinMode(BOUTON, INPUT); // déclare le bouton-poussoir en ( d'entrée ) } void loop(){ val = digitalRead(BOUTON); // lire la valeur d'entrée if (val == HIGH) { // vérifier si l'entrée est ( HAUTE ) digitalWrite(LED, LOW); // LED OFF ( BASSE ) } else { digitalWrite(LED, HIGH); // LED ON ( HAUTE ) } }
Je tes détaller le code pour que tu comprène .
Posté par
Valent81320
sur 24 février 2012 - 06:50
dans
Archives
#include <stdlib.h> #include <stdio.h> #include <Metro.h> // librairie remplacant la librairie <time.h> #include <LiquidCrystal.h> const int RS=12; const int E=11; const int D4=5; const int D5=4; const int D6=3; const int D7=6; int BP1State = 13; //BP1 branché sur la patte 13 (digitale), il en est de meme pour les autres boutons poussoir. int BP3State = 8; int BP4State = 9; int BP5State = 10; LiquidCrystal lcd(RS, E, D4, D5, D6, D7); Metro ledMetro = Metro(2000); //temps d'une boucle, ici 2sec. int nbre_impulsion; int nbre_impulsion_vitesse; volatile int front_montant = LOW; void setup() // fonction setup - début de l'exécution du programme { Serial.begin(9600); attachInterrupt(0, counter, RISING); //fonction permettant d’incrémenter le nbre_impulsion, avec la patte digitale de mon codeur branché sur l'entrée 3 digitale pinMode(BP1State,INPUT); // déclaration de mes BP en tant que entrée pinMode(BP3State,INPUT); pinMode(BP4State,INPUT); pinMode(BP5State,INPUT); digitalWrite(BP1State, HIGH); // je ne sais plus pourquoi j'ai mis ces fonctions, je l'avais vu dans un autre programme ... peut être pour tester les BP digitalWrite(BP3State, HIGH); digitalWrite(BP4State, LOW); digitalWrite(BP5State, LOW); lcd.begin(20,4); // propriété de mon écran lcd : 20 caractère et 4 lignes lcd.print("LCD OK"); // test du lcd delay(2000); lcd.clear(); delay(10); } void counter() //ici donc ma fonction, ou macro incrémentant le nbre_impulsion { ++nbre_impulsion; ++nbre_impulsion_vitesse; // cette variable est nécéssaire, car contrairement, a nbre_impulsion, il ne se réinitialise pas en fin de boucle ledMetro.check } void loop() { int pos_rad; int pos_deg; int vitesse; int vitesse_BP1; int position_BP1_rad; int position_BP1_deg; int nbre_impulsion_vitesse; int pos_deg1; int pos_rad1; while (digitalRead(BP3State) == HIGH); // tant que je n'appuie pas sur ce bouton, ici, il sert en gros a bouton d'arret d'urgence quoi ... { if (digitalRead(BP4State) == HIGH); // cet interrupteur indique s'il est actionné que le portail partira en position fermée { while (pos_deg < 90) { lcd.clear(); if (ledMetro.check() != 1) //si le temps est different de 2sec. { if (digitalRead(BP1State) == LOW); // si l'on appuie sur ce BP, alors on enregistre la position et la vitesse a ce moment { vitesse_BP1 = vitesse; position_BP1_rad = pos_rad; position_BP1_deg = pos_deg; } pos_rad = nbre_impulsion*(3.14/2)/90; // calculs pour avoir les position en radian, degré et la vitesse, précision : mon codeur envoie 1 impulsion par degré pos_deg = nbre_impulsion; vitesse = vitesse = (nbre_impulsion_vitesse*(3.14/2)/90)/2; lcd.setCursor(0,0); // on affiche la position et la vitesse lcd.print("POS DEG: "); lcd.setCursor(9,0); lcd.print(pos_deg); lcd.setCursor(0,1); lcd.print("POS RAD: "); lcd.setCursor(9,1); lcd.print(pos_rad); lcd.setCursor(0,2); lcd.print("vitesse: "); lcd.setCursor(9,2); lcd.print(vitesse); } if (ledMetro.check() == 1) // on efface toute les 2sec. { lcd.clear(); delay(100); } } if(pos_deg >= 90) // quand la position en degré est égale a 90, ou un peu supérieure, alors on arrete, puisque le portail ne bouge plus { lcd.clear(); delay(10); lcd.print("INFORMATIONS AU"); lcd.setCursor(0,1); lcd.print("POINT VOULU"); delay(2000); lcd.clear(); delay(10); lcd.setCursor(0,0); // on affiche à ce moment la la vitesse et la position au moment ou l'on avais appuyé sur BP1 lcd.print("vit. BP1: "); lcd.setCursor(10,0); lcd.print(vitesse_BP1); lcd.setCursor(0,1); lcd.print("POS DEG BP1:"); lcd.setCursor(12,1); lcd.print(position_BP1_deg); lcd.setCursor(0,2); lcd.print("POS RAD BP1:"); lcd.setCursor(12,2); lcd.print(position_BP1_rad); delay(100000000); } } if (digitalRead(BP5State) == HIGH); //si BP5 est appuyé, c'est que le portail part en position ouverte, les calculs de positions sont donc différents { while (pos_deg1 > 0) // quand il finira de bouger, la position sera de 0 { lcd.clear(); if (ledMetro.check() != 1) { pos_rad1 = (3.14/2)-(nbre_impulsion*(3.14/2)/90); pos_deg1 = 90-nbre_impulsion; vitesse = vitesse = (nbre_impulsion_vitesse*(3.14/2)/90)/2; lcd.setCursor(0,0); lcd.print("POS DEG: "); lcd.setCursor(9,0); lcd.print(pos_deg1); lcd.setCursor(0,1); lcd.print("POS RAD: "); lcd.setCursor(9,1); lcd.print(pos_rad1); lcd.setCursor(0,2); // pour le reste, tout est pareil que quand BP4 est actionné au lieu de BP5 lcd.print("vitesse: "); lcd.setCursor(9,2); lcd.print(vitesse); if (digitalRead(BP1State) == LOW); { vitesse_BP1 = vitesse; position_BP1_rad = pos_rad1; position_BP1_deg = pos_deg1; } } if (ledMetro.check() == 1) { lcd.clear(); delay(100); } } if (pos_deg <= 0) { lcd.print("INFORMATIONS AU"); lcd.setCursor(0,1); lcd.print("POINT VOULU"); delay(2000); lcd.clear(); delay(10); lcd.setCursor(0,0); lcd.print("vit. BP1: "); lcd.setCursor(10,0); lcd.print(vitesse_BP1); lcd.setCursor(0,0); lcd.print("POS DEG BP1:"); lcd.setCursor(12,1); lcd.print(position_BP1_deg); lcd.setCursor(0,2); lcd.print("POS RAD BP1:"); lcd.setCursor(12,2); lcd.print(position_BP1_rad); delay(100000000); } } } if (digitalRead(BP3State) == LOW) { lcd.print("! Recommencez !"); // si on a appuyé sur BP3, ce message s'affiche, et le programme doit etre redémarré. delay(10000000); } }
Posté par
Valent81320
sur 24 février 2012 - 09:44
dans
Archives
Posté par
Valent81320
sur 23 février 2012 - 11:17
dans
Archives
Posté par
Valent81320
sur 23 février 2012 - 11:17
dans
Archives
Posté par
Valent81320
sur 16 février 2012 - 05:23
dans
Programmation