+8
obelix21
droopaille
blevanaks
ptimaicosto
rbs
nosouci
eyeshield79
Krispies
12 participants
Checkpoint avec Arduino l'étude..
rbs- vis rouillée
- Messages : 95
Date d'inscription : 24/09/2011
Age : 34
Localisation : blois
- Message n°26
Re: Checkpoint avec Arduino l'étude..
oui j'ai déja repéré ça pour le moment je cherche si il y aurais pas en un peut plus gros vue que les miens sont des 40E/S
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°27
Re: Checkpoint avec Arduino l'étude..
il te faut l'arduino mega dans se cas
http://arduino.cc/en/Main/ArduinoBoardMega
http://arduino.cc/en/Main/ArduinoBoardMega
rbs- vis rouillée
- Messages : 95
Date d'inscription : 24/09/2011
Age : 34
Localisation : blois
- Message n°28
Re: Checkpoint avec Arduino l'étude..
j'ai trouvé ce que je cherchais je demanderais à leurs magasin la prochaine fois que j'irais ^^ http://radiospares-fr.rs-online.com/web/p/microcontroleur-processeur/7055136/
parce que les arduino sont quand même assez petits et dés que tu prend plus gros tu as un prix exorbitant lol
car la déja tu dois te faire chier si tu utilise 3E il t'en reste pas énorme pour l'afficheur
bon c'est pas tout mais j'ai mon dimanche a préparer je fonce démonter mes répliques^^
parce que les arduino sont quand même assez petits et dés que tu prend plus gros tu as un prix exorbitant lol
car la déja tu dois te faire chier si tu utilise 3E il t'en reste pas énorme pour l'afficheur
bon c'est pas tout mais j'ai mon dimanche a préparer je fonce démonter mes répliques^^
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°29
Re: Checkpoint avec Arduino l'étude..
pour l'afficheur ca depend si tu prends en serie (1 sortie) ou un 44780(6 sorties)
rbs- vis rouillée
- Messages : 95
Date d'inscription : 24/09/2011
Age : 34
Localisation : blois
- Message n°30
Re: Checkpoint avec Arduino l'étude..
moi je suis plus du genre a faire de la recup que tout acheter
mais je vais finalement passer a la carte arduino j'ai réfléchi à un bon moyen
mais je vais finalement passer a la carte arduino j'ai réfléchi à un bon moyen
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°31
Re: Checkpoint avec Arduino l'étude..
rbs a écrit:moi je suis plus du genre a faire de la recup que tout acheter
Je suis pareil le roi de la recup d'ailleur ma femme n'arrete pas de gueuler avec tout ce que je recupere.
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°32
Re: Checkpoint avec Arduino l'étude..
Salut à tous,
Si des personnes sont interressées je vous donne un petit lien pour brancher un ATMEGA.
http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard
personnellement j'ai acheté plusieurs atmega avec le bootloader comme ceux ci http://shop.snootlab.com/arduino/34-atmega-328.html, que je charge avec mon arduino.
Les premiers essais sont concluants, dans une semaine j'achete les composants qui me manque afin de tenter de vous presenter mon prototype au plus vite.
Si des personnes sont interressées je vous donne un petit lien pour brancher un ATMEGA.
http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard
personnellement j'ai acheté plusieurs atmega avec le bootloader comme ceux ci http://shop.snootlab.com/arduino/34-atmega-328.html, que je charge avec mon arduino.
Les premiers essais sont concluants, dans une semaine j'achete les composants qui me manque afin de tenter de vous presenter mon prototype au plus vite.
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°33
Re: Checkpoint avec Arduino l'étude..
Après un long moment d'absence je poste mon code et les schémas des circuits afin que vous aussi puissiez le faire chez vous.
Liste du Materiel:
un Arduino ou un Atmega 328
4 boutons 3 pour les équipes et 1 pour le menu
4 resistances 10K ohms
1 crystal 16 Mhz (si vous choisissez l'Atmega 328)
1 potentiometre 10K
1 ecran LCD 2 lignes 16 colones
1 LM7805 (si vous choisissez l'Atmega 328, permet de passer de 9V en 5V)
1 Buzzer
Le détail de l'Atmega 328
Le schéma de branchement sur un ATmega 328
Note: il faut faire un branchement pour chaque bouton
Ps: pour l'instant je n'ai pas testé les LED car j'ai commandé des LED bleu pour faire le test mais même sans ça roule super bien
Liste du Materiel:
un Arduino ou un Atmega 328
4 boutons 3 pour les équipes et 1 pour le menu
4 resistances 10K ohms
1 crystal 16 Mhz (si vous choisissez l'Atmega 328)
1 potentiometre 10K
1 ecran LCD 2 lignes 16 colones
1 LM7805 (si vous choisissez l'Atmega 328, permet de passer de 9V en 5V)
1 Buzzer
Le détail de l'Atmega 328
Le schéma de branchement sur un ATmega 328
Note: il faut faire un branchement pour chaque bouton
- Code:
/*
Le circuit:
* le bouton vert branché sur la sortie 1
* le bouton bleu branché sur la sortie 2
* le bouton rouge branché sur la sortie 3
* le bouton menu branché sur la sortie 4
* le buzzer branché sur la sortie 7
*/
const int buttonred = 3; // the number of the pushbutton pin
const int buttongreen = 1; // the number of the pushbutton pin
const int buttonblue = 2; // the number of the pushbutton pin
const int menuboutton = 4;
const int redledPin = A2; // the number of the LED pin
const int greenledPin = A1; // the number of the LED pin
const int blueledPin = A0; // the number of the LED pin
const int speakerPin = 7;
// variables will change:
int buttonStatered = 0; // variable for reading the pushbutton status
int buttonStategreen = 0; // variable for reading the pushbutton status
int buttonStateblue = 0; // variable for reading the pushbutton status
int bouttonmenu = 0;
int redsecond=30, redminute=0, redhour=0; // declare time variables
int redmillis = 0;
int greensecond=30, greenminute=0, greenhour=0; // declare time variables
int greenmillis = 0;
int bluesecond=30, blueminute=0, bluehour=0; // declare time variables
int bluemillis = 0;
int secondRAZGREEN=30, minuteRAZGREEN=0, hourRAZGREEN=0, millisRAZGREEN= 0; // declare time variables
int secondRAZRED=30, minuteRAZRED=0, hourRAZRED=0, millisRAZRED=0;
int secondRAZBLUE=30, minuteRAZBLUE=0, hourRAZBLUE=0, millisRAZBLUE=0;
int second=30, minute=0, hour=0;
//int millis =0;
boolean ledStatered = false;
boolean ledStategreen = false;
boolean ledStateblue = false;
boolean modejeu = false;
boolean typejeu = false;
static unsigned long lastTick = 0;
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
// set up the LCD's number of columns and rows:
void setup() {
// initialize the pushbutton pin as an input:
pinMode(buttonred, INPUT);
pinMode(buttongreen, INPUT);
pinMode(buttonblue, INPUT);
pinMode(menuboutton, INPUT);
pinMode(speakerPin, OUTPUT);
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.begin(16, 2);
}
void loop(){
// read the state of the pushbutton value:
buttonStatered = digitalRead(buttonred);
buttonStategreen = digitalRead(buttongreen);
buttonStateblue = digitalRead(buttonblue);
bouttonmenu = digitalRead(menuboutton);
if (bouttonmenu == HIGH) {
menu();
}
else if (typejeu == true){
RAZ();
}
else {
normal();
}
}
void normal(){
// if it is, the buttonStatered is HIGH:
while (buttonStatered == HIGH) {
buttonStatered = digitalRead(buttonred);
digitalWrite(redledPin, HIGH);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
ledStatered = true;
ledStategreen = false;
ledStateblue = false;
}
if (ledStatered == true){
if (redmillis > 0) {
redmillis--;
}
// decrement one second every 1000 milliseconds
if (redsecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
redsecond--;
redmillis = 9;
}
}
// decrement one minute every 60 seconds
if (redminute > 0) {
if (redsecond <= 0) {
redminute--;
redsecond = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (redhour > 0) {
if (redminute <= 0) {
redhour--;
redminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (redsecond == 0 && redminute == 0 && redhour == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStategreen == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, HIGH);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
buttonStategreen = digitalRead(buttongreen);
ledStatered = false;
ledStategreen = true;
ledStateblue = false;
}
if (ledStategreen == true){
if (greenmillis > 0) {
greenmillis--;
}
// decrement one second
if (greensecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
greensecond--;
greenmillis = 9;
}
}
// decrement one minute every 60 seconds
if (greenminute > 0) {
if (greensecond <= 0) {
greenminute--;
greensecond = 59; // reset seconds to 60
}
}
// decrement one hour every 60 minutes
if (greenhour > 0) {
if (greenminute <= 0) {
greenhour--;
greenminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(greenhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(greenminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(greensecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (greensecond == 0 && greenminute == 0 && greenhour == 0) {
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStateblue == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, HIGH);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
buttonStateblue = digitalRead(buttonblue);
ledStatered = false;
ledStategreen = false;
ledStateblue = true;
}
if (ledStateblue == true){
if (bluemillis > 0) {
bluemillis--;
}
// decrement one second every 1000 milliseconds
if (bluesecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
bluesecond--;
bluemillis = 9;
}
}
// decrement one minute every 60 seconds
if (blueminute > 0) {
if (bluesecond <= 0) {
blueminute--;
bluesecond = 59; // reset seconds to 60
}
}
// decrement one hour every 60 minutes
if (bluehour > 0) {
if (blueminute <= 0) {
bluehour--;
blueminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(bluehour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(blueminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(bluesecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (bluesecond == 0 && blueminute == 0 && bluehour == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
}
void menu() {
if (bouttonmenu == HIGH) {
ledStatered = false;
ledStategreen = false;
ledStateblue = false;
modejeu = false;
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("MENU");
//bouttonmenu = digitalRead(menuboutton);
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
}
if (buttonStatered == HIGH) {
redsecond++; // declare time variables
greensecond++; // declare time variables
bluesecond++; // declare time variables
second++;
secondRAZRED++;
secondRAZGREEN++;
secondRAZBLUE++;
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (second >= 60) {
if (second = 60) {
minute++;
second = 0;
}
}
if (minute >= 60) {
if (minute = 60) {
hour++;
minute = 0;
}
}
if (redsecond >= 60) {
if (redsecond = 60) {
redminute++;
redsecond = 0;
}
}
if (redminute >= 60) {
if (redminute = 60) {
redhour++;
redminute = 0;
}
}
if (greensecond >= 60) {
if (greensecond = 60) {
greenminute++;
greensecond = 0;
}
}
if (greenminute >= 60) {
if (greenminute = 60) {
greenhour++;
greenminute = 0;
}
}
if (bluesecond >= 60) {
if (bluesecond = 60) {
blueminute++;
bluesecond = 0;
}
}
if (blueminute >= 60) {
if (blueminute = 60) {
bluehour++;
blueminute = 0;
}
}
}
if (buttonStategreen == HIGH) {
redsecond--; // declare time variables
greensecond--; // declare time variables
bluesecond--; // declare time variables
second--;
secondRAZRED--;
secondRAZGREEN--;
secondRAZBLUE--;
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
static unsigned long lastTick = 0;
if (second > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
second--;
}
}
if (minute > 0) {
if (second <= 0) {
minute--;
second = 59;
}
}
if (redsecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
redsecond--;
}
}
if (redminute > 0) {
if (redsecond <= 0) {
redminute--;
redsecond = 59;
}
}
if (redhour > 0) {
if (redminute <= 0) {
redhour--;
redminute = 59;
}
}
if (greensecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
greensecond--;
}
}
if (greenminute > 0) {
if (greensecond <= 0) {
greenminute--;
greensecond = 59;
}
}
if (greenhour > 0) {
if (greenminute <= 0) {
greenhour--;
greenminute = 59;
}
}
if (bluesecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
bluesecond--;
}
}
if (blueminute > 0) {
if (bluesecond <= 0) {
blueminute--;
bluesecond = 59;
}
}
if (bluehour > 0) {
if (blueminute <= 0) {
bluehour--;
blueminute = 59;
}
}
}
while (buttonStateblue == HIGH) {
modejeu = true;
buttonStateblue = digitalRead(buttonblue);
}
if (modejeu == true){
typejeu = true;
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("MENU");
lcd.setCursor(0, 1);
lcd.print(" Mode Standard ");
delay(3000);
}
if (modejeu == false){
typejeu = false;
}
}
void RAZ(){
// if it is, the buttonStatered is HIGH:
while (buttonStatered == HIGH) {
buttonStatered = digitalRead(buttonred);
digitalWrite(redledPin, HIGH);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
ledStatered = true;
ledStategreen = false;
ledStateblue = false;
}
if (ledStatered == true){
//millisRAZGREEN = millis;
//millisRAZBLUE = millis;
secondRAZGREEN = second;
secondRAZBLUE = second;
minuteRAZGREEN = minute;
minuteRAZBLUE = minute;
hourRAZGREEN = hour;
hourRAZBLUE = hour;
/*if (millisRAZRED > 0) {
millisRAZRED--;
}*/
// decrement one second every 1000 milliseconds
if (secondRAZRED > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZRED--;
//millisRAZRED = 9;
}
}
// decrement one minute every 60 seconds
if (minuteRAZRED > 0) {
if (secondRAZRED <= 0) {
minuteRAZRED--;
secondRAZRED = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZRED > 0) {
if (minuteRAZRED <= 0) {
hourRAZRED--;
minuteRAZRED = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(hourRAZRED, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(minuteRAZRED, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(secondRAZRED, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (secondRAZRED == 0 && minuteRAZRED == 0 && hourRAZRED == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStategreen == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, HIGH);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
buttonStategreen = digitalRead(buttongreen);
ledStatered = false;
ledStategreen = true;
ledStateblue = false;
}
if (ledStategreen == true){
//millisRAZRED = millis;
//millisRAZBLUE = millis;
secondRAZRED = second;
secondRAZBLUE = second;
minuteRAZRED = minute;
minuteRAZBLUE = minute;
hourRAZRED = hour;
hourRAZBLUE = hour;
/*if (millisRAZGREEN > 0) {
millisRAZGREEN--;
}*/
// decrement one second every 1000 milliseconds
if (secondRAZGREEN > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZGREEN--;
//millisRAZGREEN = 9;
}
}
// decrement one minute every 60 seconds
if (minuteRAZGREEN > 0) {
if (secondRAZGREEN <= 0) {
minuteRAZGREEN--;
secondRAZGREEN = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZGREEN > 0) {
if (minuteRAZGREEN <= 0) {
hourRAZGREEN--;
minuteRAZGREEN = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(hourRAZGREEN, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(minuteRAZGREEN, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(secondRAZGREEN, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (secondRAZGREEN == 0 && minuteRAZGREEN == 0 && hourRAZGREEN == 0) {
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStateblue == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, HIGH);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
buttonStateblue = digitalRead(buttonblue);
ledStatered = false;
ledStategreen = false;
ledStateblue = true;
}
if (ledStateblue == true){
//millisRAZRED = millis;
//millisRAZGREEN = millis;
secondRAZRED = second;
secondRAZGREEN = second;
minuteRAZRED = minute;
minuteRAZGREEN = minute;
hourRAZRED = hour;
hourRAZGREEN = hour;
/*if (millisRAZBLUE > 0) {
millisRAZBLUE--;
}*/
// decrement one second every 1000 milliseconds
if (secondRAZBLUE > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
//if (millisRAZBLUE <= 0) {
secondRAZBLUE--;
//millisRAZBLUE = 9;
}
}
// decrement one minute every 60 seconds
if (minuteRAZBLUE > 0) {
if (secondRAZBLUE <= 0) {
minuteRAZBLUE--;
secondRAZBLUE = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZBLUE > 0) {
if (minuteRAZBLUE <= 0) {
hourRAZBLUE--;
minuteRAZBLUE = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
lcd.print(" ");
lcd.print(hourRAZBLUE, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
lcd.print(minuteRAZBLUE, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
lcd.print(secondRAZBLUE, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (secondRAZBLUE == 0 && minuteRAZBLUE == 0 && hourRAZBLUE == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
}
Ps: pour l'instant je n'ai pas testé les LED car j'ai commandé des LED bleu pour faire le test mais même sans ça roule super bien
Dernière édition par pic-pac le Mar 27 Aoû - 20:49, édité 1 fois
ptimaicosto- vis rouillée
- Messages : 90
Date d'inscription : 05/06/2011
Age : 39
Localisation : Ligny le ribault
- Message n°34
Re: Checkpoint avec Arduino l'étude..
Je vois que j'ai trouver un autre copain de jeu arduino!!! Dis si un jour ça te dis, j'ai un projet pour un parcours de cible, sur une base d'arduino avec des Shields de communication sans fils. Genre la mallette de stand de tir portatif de Cybertruc mais en versions "j'ai pas de sous". Tiens moi au jus...
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°35
Re: Checkpoint avec Arduino l'étude..
Ça peut être super sympa mais je ne sais pas si j'ai bien le niveau pour ça mais pourquoi pas
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°36
Re: Checkpoint avec Arduino l'étude..
le schéma remis à jour
et le boitier une fois fini
Début du jeu
Les Rouges capturent
Les Verts capturent
Les Bleus capturent
maintenant le Code
et le boitier une fois fini
Début du jeu
Les Rouges capturent
Les Verts capturent
Les Bleus capturent
maintenant le Code
- Code:
/*
The circuit:
* le bouton vert branché sur la sortie 1
* le bouton bleu branché sur la sortie 2
* le bouton rouge branché sur la sortie 3
* le bouton menu branché sur la sortie 4
* le buzzer branché sur la sortie 0
*/
const int buttonred = 3; // the number of the pushbutton pin
const int buttongreen = 1; // the number of the pushbutton pin
const int buttonblue = 2; // the number of the pushbutton pin
const int menuboutton = 4;
const int redledPin = A2; // the number of the LED pin
const int greenledPin = A1; // the number of the LED pin
const int blueledPin = A0; // the number of the LED pin
const int speakerPin = 0;
// variables will change:
int buttonStatered = 0; // variable for reading the pushbutton status
int buttonStategreen = 0; // variable for reading the pushbutton status
int buttonStateblue = 0; // variable for reading the pushbutton status
int bouttonmenu = 0;
int bouttonblue = 0;
int bouttonred = 0;
int bouttongreen = 0;
//int millis = 0;
int redsecond=30, redminute=0, redhour=0; // declare time variables
int redmillis = 0;
int greensecond=30, greenminute=0, greenhour=0; // declare time variables
int greenmillis = 0;
int bluesecond=30, blueminute=0, bluehour=0; // declare time variables
int bluemillis = 0;
int secondRAZGREEN=30, minuteRAZGREEN=0, hourRAZGREEN=0, millisRAZGREEN= 0; // declare time variables
int secondRAZRED=30, minuteRAZRED=0, hourRAZRED=0, millisRAZRED=0;
int secondRAZBLUE=30, minuteRAZBLUE=0, hourRAZBLUE=0, millisRAZBLUE=0;
int second=30, minute=0, hour=0;
//int millis =0;
boolean ledStatered = false;
boolean ledStategreen = false;
boolean ledStateblue = false;
boolean modejeu = false;
boolean typejeu = false;
static unsigned long lastTick = 0;
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
// set up the LCD's number of columns and rows:
void setup() {
// initialize the pushbutton pin as an input:
pinMode(buttonred, INPUT);
pinMode(buttongreen, INPUT);
pinMode(buttonblue, INPUT);
pinMode(menuboutton, INPUT);
pinMode(0, OUTPUT);
pinMode(speakerPin, OUTPUT);
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(2, 0 );
lcd.print( "Base Airsoft" );
lcd.setCursor( 3, 1 );
lcd.print( "GOOD GAME" );
delay(2000);
lcd.setCursor( 2, 0 );
lcd.print( "Base Airsoft" );
lcd.setCursor( 3, 1 );
lcd.print( "BY PIC-PAC" );
delay(2000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Mode Standard");
lcd.setCursor(1, 1);
lcd.print("Appuyez bouton");
delay(3000);
}
void loop(){
suite();
}
void suite(){
// read the state of the pushbutton value:
buttonStatered = digitalRead(buttonred);
buttonStategreen = digitalRead(buttongreen);
buttonStateblue = digitalRead(buttonblue);
bouttonmenu = digitalRead(menuboutton);
if (bouttonmenu == HIGH) {
menu();
}
else if (typejeu == true){
RAZ();
}
else {
normal();
}
}
void normal(){
// if it is, the buttonStatered is HIGH:
while (buttonStatered == HIGH) {
buttonStatered = digitalRead(buttonred);
digitalWrite(redledPin, HIGH);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
ledStatered = true;
ledStategreen = false;
ledStateblue = false;
}
if (ledStatered == true){
if (redmillis > 0) {
redmillis--;
}
// decrement one second every 1000 milliseconds
if (redsecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
redsecond--;
redmillis = 9;
}
}
// decrement one minute every 60 seconds
if (redminute > 0) {
if (redsecond <= 0) {
redminute--;
redsecond = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (redhour > 0) {
if (redminute <= 0) {
redhour--;
redminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (redhour <=9) {
lcd.print("0");
}
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (redminute <=9) {
lcd.print("0");
}
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (redsecond <=9) {
lcd.print("0");
}
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (redsecond == 0 && redminute == 0 && redhour == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
pinMode(0, OUTPUT);
digitalWrite(0, HIGH);
//digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(0, LOW);
//digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStategreen == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, HIGH);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
buttonStategreen = digitalRead(buttongreen);
ledStatered = false;
ledStategreen = true;
ledStateblue = false;
}
if (ledStategreen == true){
if (greenmillis > 0) {
greenmillis--;
}
// decrement one second
if (greensecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
greensecond--;
greenmillis = 9;
}
}
// decrement one minute every 60 seconds
if (greenminute > 0) {
if (greensecond <= 0) {
greenminute--;
greensecond = 59; // reset seconds to 60
}
}
// decrement one hour every 60 minutes
if (greenhour > 0) {
if (greenminute <= 0) {
greenhour--;
greenminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (greenhour <=9) {
lcd.print("0");
}
lcd.print(greenhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (greenminute <=9) {
lcd.print("0");
}
lcd.print(greenminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (greensecond <=9) {
lcd.print("0");
}lcd.print(greensecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (greensecond == 0 && greenminute == 0 && greenhour == 0) {
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
//pinMode(0, OUTPUT);
//digitalWrite(0, LOW);
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
//pinMode(0, INPUT);
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStateblue == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, HIGH);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("BLUE");
buttonStateblue = digitalRead(buttonblue);
ledStatered = false;
ledStategreen = false;
ledStateblue = true;
}
if (ledStateblue == true){
if (bluemillis > 0) {
bluemillis--;
}
// decrement one second every 1000 milliseconds
if (bluesecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
bluesecond--;
bluemillis = 9;
}
}
// decrement one minute every 60 seconds
if (blueminute > 0) {
if (bluesecond <= 0) {
blueminute--;
bluesecond = 59; // reset seconds to 60
}
}
// decrement one hour every 60 minutes
if (bluehour > 0) {
if (blueminute <= 0) {
bluehour--;
blueminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (bluehour <=9) {
lcd.print("0");
}
lcd.print(bluehour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (blueminute <=9) {
lcd.print("0");
}
lcd.print(blueminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (bluesecond <=9) {
lcd.print("0");
}
lcd.print(bluesecond, DEC); // the second, sent to the screen in decimal format
if (bluesecond == 0 && blueminute == 0 && bluehour == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
//pinMode(0, OUTPUT);
//digitalWrite(0, LOW);
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
//pinMode(0, INPUT);
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
}
void menu() {
if (bouttonmenu == HIGH) {
ledStatered = false;
ledStategreen = false;
ledStateblue = false;
modejeu = false;
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("MENU");
//bouttonmenu = digitalRead(menuboutton);
lcd.setCursor(4, 1);
if (redhour <=9) {
lcd.print("0");
}
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (redminute <=9) {
lcd.print("0");
}
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (redsecond <=9) {
lcd.print("0");
}
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
}
if (buttonStatered == HIGH) {
static unsigned long millis = 10;
millis++;
lcd.setCursor(4, 1);
if (redhour <=9) {
lcd.print("0");
}
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (redminute <=9) {
lcd.print("0");
}
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (redsecond <=9) {
lcd.print("0");
}
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
if (millis >= 10) {
if (millis = 10){
second++;
millis = 0;
}
}
if (second >= 60) {
if (second = 60) {
minute++;
second = 0;
}
}
if (minute >= 60) {
if (minute = 60) {
hour++;
minute = 0;
}
}
bluesecond = second;
blueminute = minute;
bluehour = hour;
redsecond = second;
redminute = minute;
redhour = hour;
greensecond = second;
greenminute = minute;
greenhour = hour;
secondRAZRED = second;
minuteRAZRED = minute;
hourRAZRED = hour;
secondRAZGREEN = second;
minuteRAZGREEN = minute;
hourRAZGREEN = hour;
secondRAZBLUE = second;
minuteRAZBLUE = minute;
hourRAZBLUE = hour;
}
if (buttonStategreen == HIGH) {
redsecond--; // declare time variables
greensecond--; // declare time variables
bluesecond--; // declare time variables
second--;
secondRAZRED--;
secondRAZGREEN--;
secondRAZBLUE--;
lcd.setCursor(4, 1);
if (redhour <=9) {
lcd.print("0");
}
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (redminute <=9) {
lcd.print("0");
}
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (redsecond <=9) {
lcd.print("0");
}
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
static unsigned long lastTick = 0;
if (second > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
second--;
}
}
if (minute > 0) {
if (second <= 0) {
minute--;
second = 59;
}
}
if (redsecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
redsecond--;
}
}
if (redminute > 0) {
if (redsecond <= 0) {
redminute--;
redsecond = 59;
}
}
if (redhour > 0) {
if (redminute <= 0) {
redhour--;
redminute = 59;
}
}
if (greensecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
greensecond--;
}
}
if (greenminute > 0) {
if (greensecond <= 0) {
greenminute--;
greensecond = 59;
}
}
if (greenhour > 0) {
if (greenminute <= 0) {
greenhour--;
greenminute = 59;
}
}
if (bluesecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
bluesecond--;
}
}
if (blueminute > 0) {
if (bluesecond <= 0) {
blueminute--;
bluesecond = 59;
}
}
if (bluehour > 0) {
if (blueminute <= 0) {
bluehour--;
blueminute = 59;
}
}
}
while (buttonStateblue == HIGH) {
modejeu = true;
buttonStateblue = digitalRead(buttonblue);
}
if (modejeu == true){
typejeu = true;
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Mode RAZ");
lcd.setCursor(1, 1);
lcd.print("Appuyez bouton");
delay(3000);
}
if (modejeu == false){
typejeu = false;
}
}
void RAZ(){
// if it is, the buttonStatered is HIGH:
while (buttonStatered == HIGH) {
buttonStatered = digitalRead(buttonred);
digitalWrite(redledPin, HIGH);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
ledStatered = true;
ledStategreen = false;
ledStateblue = false;
}
if (ledStatered == true){
secondRAZGREEN = second;
secondRAZBLUE = second;
minuteRAZGREEN = minute;
minuteRAZBLUE = minute;
hourRAZGREEN = hour;
hourRAZBLUE = hour;
// decrement one second every 1000 milliseconds
if (secondRAZRED > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZRED--;
//millisRAZRED = 9;
}
}
// decrement one minute every 60 seconds
if (minuteRAZRED > 0) {
if (secondRAZRED <= 0) {
minuteRAZRED--;
secondRAZRED = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZRED > 0) {
if (minuteRAZRED <= 0) {
hourRAZRED--;
minuteRAZRED = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (hourRAZRED <=9) {
lcd.print("0");
}
lcd.print(hourRAZRED, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minuteRAZRED <=9) {
lcd.print("0");
}
lcd.print(minuteRAZRED, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (secondRAZRED <=9) {
lcd.print("0");
}
lcd.print(secondRAZRED, DEC); // the second, sent to the screen in decimal format
if (secondRAZRED == 0 && minuteRAZRED == 0 && hourRAZRED == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
//pinMode(0, OUTPUT);
//digitalWrite(0, LOW);
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
//pinMode(0, INPUT);
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStategreen == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, HIGH);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
buttonStategreen = digitalRead(buttongreen);
ledStatered = false;
ledStategreen = true;
ledStateblue = false;
}
if (ledStategreen == true){
secondRAZRED = second;
secondRAZBLUE = second;
minuteRAZRED = minute;
minuteRAZBLUE = minute;
hourRAZRED = hour;
hourRAZBLUE = hour;
// decrement one second every 1000 milliseconds
if (secondRAZGREEN > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZGREEN--;
//millisRAZGREEN = 9;
}
}
// decrement one minute every 60 seconds
if (minuteRAZGREEN > 0) {
if (secondRAZGREEN <= 0) {
minuteRAZGREEN--;
secondRAZGREEN = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZGREEN > 0) {
if (minuteRAZGREEN <= 0) {
hourRAZGREEN--;
minuteRAZGREEN = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (hourRAZGREEN <=9) {
lcd.print("0");
}
lcd.print(hourRAZGREEN, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minuteRAZGREEN <=9) {
lcd.print("0");
}
lcd.print(minuteRAZGREEN, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (secondRAZGREEN <=9) {
lcd.print("0");
}
lcd.print(secondRAZGREEN, DEC); // the second, sent to the screen in decimal format
if (secondRAZGREEN == 0 && minuteRAZGREEN == 0 && hourRAZGREEN == 0) {
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
//pinMode(0, OUTPUT);
//digitalWrite(0, LOW);
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
//pinMode(0, INPUT);
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStateblue == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, HIGH);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("BLUE");
buttonStateblue = digitalRead(buttonblue);
ledStatered = false;
ledStategreen = false;
ledStateblue = true;
}
if (ledStateblue == true){
secondRAZRED = second;
secondRAZGREEN = second;
minuteRAZRED = minute;
minuteRAZGREEN = minute;
hourRAZRED = hour;
hourRAZGREEN = hour;
// decrement one second every 1000 milliseconds
if (secondRAZBLUE > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZBLUE--;
}
}
// decrement one minute every 60 seconds
if (minuteRAZBLUE > 0) {
if (secondRAZBLUE <= 0) {
minuteRAZBLUE--;
secondRAZBLUE = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZBLUE > 0) {
if (minuteRAZBLUE <= 0) {
hourRAZBLUE--;
minuteRAZBLUE = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (hourRAZBLUE <=9) {
lcd.print("0");
}
lcd.print(hourRAZBLUE, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minuteRAZBLUE <=9) {
lcd.print("0");
}
lcd.print(minuteRAZBLUE, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (secondRAZBLUE <=9) {
lcd.print("0");
}
lcd.print(secondRAZBLUE, DEC); // the second, sent to the screen in decimal format
if (secondRAZBLUE == 0 && minuteRAZBLUE == 0 && hourRAZBLUE == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
//pinMode(0, OUTPUT);
//digitalWrite(0, LOW);
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
//pinMode(0, INPUT);
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
}
blevanaks- vis rouillée
- Messages : 44
Date d'inscription : 24/11/2013
Age : 43
Localisation : Essonne
- Message n°37
Re: Checkpoint avec Arduino l'étude..
Salut Pic Pac
J aurai une question sur ce projet
Tu mets
" * le bouton vert branché sur la sortie 1
* le bouton bleu branché sur la sortie 2
* le bouton rouge branché sur la sortie 3
* le bouton menu branché sur la sortie 4
* le buzzer branché sur la sortie 0"
Cependant sur ton schema tous les boutons poussoir sont connectés sur la pattes 3 et le Buzzer sur la 2, donc je ne comprends pas peux tu m expliquer stp ^^
Merci par avance
J aurai une question sur ce projet
Tu mets
" * le bouton vert branché sur la sortie 1
* le bouton bleu branché sur la sortie 2
* le bouton rouge branché sur la sortie 3
* le bouton menu branché sur la sortie 4
* le buzzer branché sur la sortie 0"
Cependant sur ton schema tous les boutons poussoir sont connectés sur la pattes 3 et le Buzzer sur la 2, donc je ne comprends pas peux tu m expliquer stp ^^
Merci par avance
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°38
Re: Checkpoint avec Arduino l'étude..
ça m'intéresse bien ton truc
combien ça coute ?
y a t'il moyen de mettre un code chiffré au lieu d'un bouton pour chaque équipe ?
peut on relayer vers des sorties pour signaliser avec des feux de couleur la couleur de la position ?
peut on mettre un truc genre appuyer pendant 30sec sur le bouton avant que ça change de couleur ?
peut on intégrer un système d'info radio pour signifier à un récepteur la couleur de chaque position ?
c'est tout pour le moment mais je vais sans doute avoir d'autres questions
combien ça coute ?
y a t'il moyen de mettre un code chiffré au lieu d'un bouton pour chaque équipe ?
peut on relayer vers des sorties pour signaliser avec des feux de couleur la couleur de la position ?
peut on mettre un truc genre appuyer pendant 30sec sur le bouton avant que ça change de couleur ?
peut on intégrer un système d'info radio pour signifier à un récepteur la couleur de chaque position ?
c'est tout pour le moment mais je vais sans doute avoir d'autres questions
blevanaks- vis rouillée
- Messages : 44
Date d'inscription : 24/11/2013
Age : 43
Localisation : Essonne
- Message n°39
Re: Checkpoint avec Arduino l'étude..
Hey Mister Pic Pac, après relecture au calme j'ai compris ^^ tu n as pas l affiché tous les boutons poussoir sur le schéma tout simplement
Encore merci pour tout Mister
Encore merci pour tout Mister
blevanaks- vis rouillée
- Messages : 44
Date d'inscription : 24/11/2013
Age : 43
Localisation : Essonne
- Message n°40
Re: Checkpoint avec Arduino l'étude..
Salut à tous
Pic Pac j aurais une petite question ^^ une fois passé en mode RAZ on ne peut pas revenir au mode standard ? (obligé d éteindre et rallumer ?)
Merci
Pic Pac j aurais une petite question ^^ une fois passé en mode RAZ on ne peut pas revenir au mode standard ? (obligé d éteindre et rallumer ?)
Merci
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°41
Re: Checkpoint avec Arduino l'étude..
Oui je reboote quand je veux repasser en standart
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°42
Re: Checkpoint avec Arduino l'étude..
et mes questions à moi pic pac ?
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°43
Re: Checkpoint avec Arduino l'étude..
droopaille a écrit:ça m'intéresse bien ton truc
combien ça coute ?
y a t'il moyen de mettre un code chiffré au lieu d'un bouton pour chaque équipe ?
peut on relayer vers des sorties pour signaliser avec des feux de couleur la couleur de la position ?
peut on mettre un truc genre appuyer pendant 30sec sur le bouton avant que ça change de couleur ?
peut on intégrer un système d'info radio pour signifier à un récepteur la couleur de chaque position ?
c'est tout pour le moment mais je vais sans doute avoir d'autres questions
oups!!! Pardon je n'avais pas vu
mon petit projet m'est revenu pour une trentaine d'€uros environ.
un code chiffré oui mais ça demande un peu de codage et un clavier (voir ma bombinette).
pour les sorties on doit pouvoir mettre une LED de la couleur de l’équipe, attention à la tension et l’ampérage de sortie qui seront assez faible)
30 secondes avant changement de couleur oui possible avec un peu de codage en plus, tu peux même afficher une barre de chargement.
pour le système d'info radio, j'y ai déjà pensé mais mes compétences d'autodidacte s’arrête la, j'avais déjà pensé afin de faire plusieurs boitiers et qu'ils puissent discuter entre eux afin de savoir quelle couleur est active sur les points afin de pouvoir se faire un mode "conquête" a la battlefield, ce qui éviterait les drapeaux et ou personne ne sait vraiment la couleur des "checkpoint"
en espérant avoir répondu a toutes tes questions, si tu en as d'autres n’hésite pas
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°44
Re: Checkpoint avec Arduino l'étude..
super merci
dernière question, c'est quand que tu m'en fais un ?
dernière question, c'est quand que tu m'en fais un ?
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°45
Re: Checkpoint avec Arduino l'étude..
j'en ai 2 a la maison en plus lol
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°46
Re: Checkpoint avec Arduino l'étude..
si ça continue Droop on va faire de l’échange de bons procédés lol car moi je veux une M2HB
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°47
Re: Checkpoint avec Arduino l'étude..
tu disais 30€ le boitier ?
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°48
Re: Checkpoint avec Arduino l'étude..
il faut compter:
un Arduino ou un Atmega 328 20€ l'arduino ou 6€ l'Atmega 328
4 boutons 3 pour les équipes et 1 pour le menu 4€
4 resistances 10K ohms 1€
1 crystal 16 Mhz (si vous choisissez l'Atmega 328) 1€
1 potentiometre 10K 2€
1 ecran LCD 2 lignes 16 colones 5€
1 LM7805 (si vous choisissez l'Atmega 328, permet de passer de 9V en 5V) 0,50€
1 Buzzer 1€
1 boitier electrique 7 a 10€ suivant les marques
1 plaque pour monter le circuit 2€
les cables 2€
+ consommables etain, tresse a dessouder, gaine termo
les prix sont approximatifs, apres moi je commande sur EBAY et j'essaye de prendre les moins cher et sans frais de port.
un Arduino ou un Atmega 328 20€ l'arduino ou 6€ l'Atmega 328
4 boutons 3 pour les équipes et 1 pour le menu 4€
4 resistances 10K ohms 1€
1 crystal 16 Mhz (si vous choisissez l'Atmega 328) 1€
1 potentiometre 10K 2€
1 ecran LCD 2 lignes 16 colones 5€
1 LM7805 (si vous choisissez l'Atmega 328, permet de passer de 9V en 5V) 0,50€
1 Buzzer 1€
1 boitier electrique 7 a 10€ suivant les marques
1 plaque pour monter le circuit 2€
les cables 2€
+ consommables etain, tresse a dessouder, gaine termo
les prix sont approximatifs, apres moi je commande sur EBAY et j'essaye de prendre les moins cher et sans frais de port.
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°49
Re: Checkpoint avec Arduino l'étude..
je comprends pas très bien la différence entre l'arduino et l'atmega.
l'un est un composant de l'autre mais si tu prends juste le composant, tu es obligé d'avoir un arduino pour programmer non ?
l'un est un composant de l'autre mais si tu prends juste le composant, tu es obligé d'avoir un arduino pour programmer non ?
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°50
Re: Checkpoint avec Arduino l'étude..
tout juste Auguste
l'arduino UNO est une plaquette sur laquelle se trouve un ATMEGA 328P, tu peux charger ton code dedans et le monter sur un autre circuit que tu as monté à coté et qui te reviens du coup beaucoup moins cher que d'utiliser un arduino a chaque fois.
l'arduino UNO est une plaquette sur laquelle se trouve un ATMEGA 328P, tu peux charger ton code dedans et le monter sur un autre circuit que tu as monté à coté et qui te reviens du coup beaucoup moins cher que d'utiliser un arduino a chaque fois.