FORUM D’ENTRAIDE INFORMATIQUE (FEI)
Site d’assistance et de sécurité informatique

Arduino programmation

Règles du forum : Entraide concernant la programmation informatique en général, tous langages : recherche ou correction d'un code ou d'une fonction, aide à la réalisation d'un projet...
Pour la programmation web (HTML, CSS, PHP, MySQL...), il est conseillé de s'orienter dans le forum Webmastering.
Merci de lire et de respecter la charte générale du forum.

Répondre

Afin d’empêcher la création automatisée de comptes, nous vous demandons de réussir le défi ci-contre.
Smileys
:D :) :-) ;) :| :( :cry: :cheers: :hourra: :mv: :lol: :mdr: :bonjour: :hello: :jap: :siffle: :bisou: :P :o :x :roll: :good: :bad: :super: :reflexion: :suspect: :? :oops: :peur: :zen: :boude: :bug:

Revue du sujet : Arduino programmation Étendre la vue

Re: Arduino programmation

par nergens » sam. 19 sept. 2015 10:11
Bonjour,

Votre sujet n'a jamais reçu de réponse et nous en sommes désolés... :(

Nous espérons sincèrement vous revoir bientôt si vous avez d'autres questions et nous ferons le maximum pour vous répondre le plus rapidement et complètement possible.

A bientôt
:bonjour:

Arduino programmation

par nicodu13 » sam. 30 mai 2015 11:51
Voici mon programme,
je souhaiterais savoir si quelqu'un peut voir si il y a une erreur sur mon programme
car je souhaiterais utiliser un RTC pour enclencher un solénoïde a une heure bien precise sauf que pour insérer l'heure en question je souhaite utiliser un clavier et un écran.
Merci par avance


#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
#include <Keypad.h>

const int controlPin1 = 2;
const int controlPin2 = 3;
const int enablePin = 9;

int Motord = 5 ;
int Motorg = 6 ;

char toucheD;
char toucheU;
char toucheDM;
char toucheUM;
char key;


RTC_DS1307 RTC;

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

void setup () {
Serial.begin(57600); //Démarrage de la communication
Wire.begin(); //Démarrage de la librairie wire.h
RTC.begin(); //Démarrage de la librairie RTClib.h

RTC.adjust(DateTime(__DATE__, "13:47:00"));

//Si RTC ne fonctionne pas
if (! RTC.isrunning()) {
Serial.println("RTC ne fonctionne pas !");

//Met à l'heure à date à laquelle le sketch est compilé
//RTC.adjust(DateTime(__DATE__, __TIME__));
}
lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes
delay(10);

pinMode (Motord, OUTPUT);
pinMode (Motorg, OUTPUT);
}

const byte LIGNES = 4; // 4 lignes
const byte COLONNES = 3; //4 colonnes


// --- constantes des broches ---

const int C3=3; //declaration constante de broche
const int C2=4; //declaration constante de broche
const int C1=5; //declaration constante de broche
const int RS=8; //declaration constante de broche
const int E=9; //declaration constante de broche
const int D4=10; //declaration constante de broche
const int D5=11; //declaration constante de broche
const int D6=12; //declaration constante de broche
const int D7=13; //declaration constante de broche
const int L4=7; //declaration constante de broche
const int L3=A1; //declaration constante de broche
const int L2=A2; //declaration constante de broche
const int L1=A3; //declaration constante de broche

// --- Déclaration des variables globales ---

//--- Définition des touches
char touches[LIGNES][COLONNES] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};

// tableaux de lignes et colonnes
byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
byte BrochesColonnes[COLONNES] = {C1, C2, C3}; //connexions utilisées pour les broches de colonnes du clavier


Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );


void loop()
{

DateTime now = RTC.now();
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(3000);

toucheD = clavier.getKey(); // lecture de la touche appuyée

if (toucheD != NO_KEY)
{ // si une touche a été frappée -- gestion de la touche appuyée
enum eEtat {
ATTENTE_ETOILE,
ATTENTE_DIZAINE,
ATTENTE_UNITE,
ATTENTE_ETOILE_M,
ATTENTE_DIZAINE_M,
ATTENTE_UNITE_M,
ATTENTE_ETOILE_F,
};
typedef enum eEtat eEtat;


eEtat etatActuel = ATTENTE_ETOILE;

key = clavier.getKey();

if ( key != NO_KEY ) {

switch(etatActuel) {

case ATTENTE_ETOILE:

if ( key == '*' ) {
etatActuel = ATTENTE_DIZAINE;
}

break;

case ATTENTE_DIZAINE:

if ( key >= '0' && key <= '2' ) {
toucheD = key;
etatActuel = ATTENTE_UNITE;
}
break;

case ATTENTE_UNITE:

if (
( key >= '0' && key <= '9' && toucheD >= '0' && toucheD <= '2' )
||
( key >= '0' && key <= '3' && toucheD == '2' )
) {
toucheU = key;
etatActuel = ATTENTE_ETOILE;
}
break;

case ATTENTE_ETOILE_M:

if ( key == '*' ) {
etatActuel = ATTENTE_DIZAINE_M;
}

break;

case ATTENTE_DIZAINE_M:

if ( key >= '0' && key < '6' ) {
toucheDM = key;
etatActuel = ATTENTE_UNITE_M;
}
break;

case ATTENTE_UNITE_M:

if ( key >= '0' && key <= '9' ) {
toucheUM = key;
etatActuel = ATTENTE_ETOILE_F;
}
break;

}
int nbD = ( (int)( toucheD - '0' ) );
int nbU = ( (int)( toucheU - '0' ) );

int nbH = ( ( nbD * 10 ) + nbU );

int nbDM = ( (int)( toucheDM - '0' ) );
int nbUM = ( (int)( toucheUM - '0' ) );

int nbM = ( ( nbDM * 10 ) + nbUM );

int sensorValue = analogRead(A0);

float voltage = sensorValue * (5.0 / 1023.0);

if (now.hour() == nbH && now.minute() == nbM) {
if (voltage >= 1.36){
delay(300);
}
else {
digitalWrite (Motord, LOW);
digitalWrite (Motorg, HIGH);
delay (3000);
digitalWrite (Motorg, LOW);
delay (1000);
digitalWrite (Motorg, LOW);
digitalWrite (Motord, HIGH);
delay (3000);
digitalWrite (Motord, LOW);
delay (1000);
}
delay(100);
}

}
}
}

Hello everybody. Lately I have been very unlucky[…]

Having a coupon code is so convenient and helps a […]

Long-distance relationship

Hello everyone! Lately I have been thinking abou[…]

I appreciate you sharing this knowledge. I adore y[…]