• STATISTIQUES
  • Il y a eu un total de 0 membres et 27256 visiteurs sur le site dans les dernières 24h pour un total de 27 256 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [EN] HackQuest
    Logic: 12, JavaScript: 14, Applet: 6, CrackIt: 13, Crypto: 11, Internet: 3, Exploit: 7, Stegano: 12, Flash: 1, Programmi...
    Challenges
    [EN] wechall
    Pour les gens n'étant pas familiers avec les sites de challenges, un site de challenges est un site propos...
    Hacking
    [EN] Astalavista
    JavaScript: 1, Exploit: 2, Crypto: 34, CrackIt: 15, Stegano: 8, Programming: 12, Logic: 36, Special: 6, Science: 4, Info...
    Challenges
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [EN] Sabre Films
    Site de challenge présenté sous la forme d'une quête. Vous êtes un détective et devrez résoudre d...
    Challenges
    [EN] Bright Shadows
    JavaScript: 13, Exploit: 27, Crypto: 69, CrackIt: 52, Stegano: 67, Flash: 3, Programming: 16, Java-Applet: 10, Logic: 20...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
ARDUINO, Petite demande
10-12-2013, 10h17 (Modification du message : 12-12-2013, 22h21 par Di0Sasm.)
Message : #1
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
ARDUINO, Petite demande
Salut, enfaite je possède un projet cette année. Une station météo, ayant une grosse partie ARDUINO je voulais juste savoir qu'est-ce qu'il donne ce code ? Je les essayer quelques erreurs de simplicités mais sinon je voulais voir ce qu'il peut donner en réduction de code il prends pas mal de place ...
Sinon, vu la consommation d'une carte arduino je voulais me renseigner sur un autre support

Code C :
 
#include <LiquidCrystal.h> //On inclue les différentes librairies
#include <Wire.h>
#include "Adafruit-BMP085.h"
#include "DHT.h"
#include "RTClib.h"

#define DHTPIN 2 //on définit le pin du DHT
#define DHTTYPE DHT22 //on définit le type du DHT peut aussi etre DHT11 ou DHT21

#define REDPIN 5 //On définit le Pin pour les LED rouge
#define GREENPIN 6 //On définit le Pin pour les LED bleu
#define BLUEPIN 3 //On définit le Pin pour les LED verte
#define FADESPEED 50 //On définit un indicateur de temps pour la rotation des couleurs et le rafraissichement des données

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //On définie les Pins pour l'écran LCD

const int lumiPin = A0; //On définit le Pin de la photorésistance
int lumiValue = 0; //On définit la variable qui va retenir la valeur de la photorésistance
int lumilcdValue = 0; //On définit la variable qui affichera le % de luminosité sur le LCD

Adafruit_BMP085 bmp;//on démarre les variables de lesibraries
DHT dht(DHTPIN, DHTTYPE);
RTC_DS1307 RTC;

void setup() {
Serial.begin(19200); //on demarre une communication serial
if (!bmp.begin()) {
Serial.println("BMP085 ERREUR !!!");//on vérifie si le bmp085 fonctionne
while (1) {}
}
Serial.println("DHT21 TEST");//on vérifie si le DHT fonctionne
dht.begin();
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC ERREUR !!!");
// la ligne suivante définit l'heure du RTC à celle ou le code a été compilé
RTC.adjust(DateTime(__DATE__, __TIME__));
}
//On définie les Pins en mode sortie pour le ruban LED
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
pinMode(BLUEPIN, OUTPUT);

lcd.begin(20, 4); //On définit le nombre de caractères par ligne et le nombre de lignes du LCD

}

void loop() {

lumiValue = analogRead(lumiPin); //On lit la valeur de la photorésistance

/* Pour utiliser la valeur de la photorésistance, il faut faire un peu de math.
La photorésistance fournit un nombre à 10-bits.
Mais analogWrite() utilise des chiffres à 8-bits.
Il faut diviser la valeur par 10 pour ramener celle-ci à un % */

lumilcdValue = lumiValue/10;

int alti = bmp.readAltitude();//on ne garde que la partie entière de la valeur pour l'altittude sa gagne toujours deux caracteres sur le lcd...

int h = dht.readHumidity(); //on definit h pour stocker la valeur d'humidité
int t = dht.readTemperature();//on definit t pour stocker la valeur de temperature

if (isnan(t) || isnan(h))
{
Serial.println("DHT ERREUR !!!");//on revérifie le dht
} else {
Serial.print("Humidite: ");//on imprime les valeurs dans le serial si le lcd ne marche pas cela permet de débeguer...
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
Serial.print("Temperature = ");// a partir d'ici ce sont les données du bmp085
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pression = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print("Altittude = ");
Serial.print(bmp.readAltitude());
Serial.println(" metres");
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(101500));
Serial.println(" metres");
Serial.println();

DateTime now = RTC.now();// a partir d'icic ce sont les données du DS1307
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print("Depuis Minuit 1/1/1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calcul d'une date dans 7jours
DateTime future (now.unixtime() + 7 * 86400L + 30);
Serial.print("Maintenant + 7 Jours + 30 Secondes: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();

// on passe à l'affichage sur le lcd
lcd.print(now.day(), DEC); //On affiche le jour
lcd.print('/');
lcd.print(now.month(), DEC); //On affiche le mois
lcd.print('/');
lcd.print(now.year(), DEC); //On affiche l'annee
lcd.print(" "); //espace
lcd.print(now.hour(), DEC); //On affiche l'heure
lcd.print(':');
lcd.print(now.minute(), DEC); //On affiche les minutes
lcd.setCursor(0, 1); //On passe à la seconde ligne
lcd.print(bmp.readTemperature()); //On affiche notre moyenne de température
lcd.print("*C"); //On affiche l'unité de température
lcd.print(" "); //espace
lcd.print("%Humi:"); //On affiche le % d'humidité
lcd.print(h); //On affiche notre moyenne de température
lcd.setCursor(0, 2); //On passe à la troisieme ligne
lcd.print("Pression: "); //On affiche la pression atmosphérique
lcd.print(bmp.readPressure()); //on lit la valeur de pression du BMP085
lcd.print("Pa"); //On affiche l'unité de pression : Pascal
lcd.setCursor(0, 3); //On passe à la quatrième ligne
lcd.print("Alti:"); //On affiche l'altitude
lcd.print(alti); //On lit la valeur depuis le BMP085
lcd.print("m"); //On affiche l'unité d'altitude : mètres
lcd.print(" "); //espace
lcd.print("%Lumi:"); //On affiche le % de lumiere
lcd.print(lumilcdValue); //On affiche la valeur calculé plus haut
delay(6000);// on patiente ^^

//maintenant on pilote les led
int r, g, b; //on définit les variables pour nos couleurs
//transformation bleue à violet

for (r = 0; r < 256; r++){analogWrite(REDPIN, r) ; delay(FADESPEED);}

 

//transformation violet à rouge

for (b = 255; b > 0; b--){analogWrite(BLUEPIN, b) ; delay(FADESPEED);}
//transformation rouge à jaune

for (g = 0; g < 256; g++){analogWrite(GREENPIN, g) ; delay(FADESPEED);}

 

//transformation jaune à vert

for (r = 255; r > 0; r--){analogWrite(REDPIN, r) ; delay(FADESPEED);}
//transformation vert à cyan

for (b = 0; b < 256; b++){analogWrite(BLUEPIN, b); delay(FADESPEED);}

 

//transformation cyan à bleue

for (g = 255; g > 0; g--){analogWrite(GREENPIN, g) ; delay(FADESPEED);}

lcd.clear(); // on nettoie le lcd pour les prochaines données

}


Voilà répondez si ya des erreurs ou des remarques Smile


EDIT les librairies :

Adafruit-BMP085-Library
DHT-sensor-library
RTClib (DS1307)


Projet : ( maquette exemple trouver )

[Image: sface.jpg]
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre


Messages dans ce sujet
ARDUINO, Petite demande - par Yuri - 10-12-2013, 10h17
RE: ARDUINO, Petite demande - par Yuri - 12-12-2013, 17h10
RE: ARDUINO, Petite demande - par Booster2ooo - 12-12-2013, 17h11
RE: ARDUINO, Petite demande - par Yttrium - 12-12-2013, 17h36
RE: ARDUINO, Petite demande - par Yuri - 12-12-2013, 17h41
RE: ARDUINO, Petite demande - par thxer - 15-12-2013, 15h52
RE: ARDUINO, Petite demande - par Yuri - 15-12-2013, 19h06
RE: ARDUINO, Petite demande - par Yttrium - 15-12-2013, 23h09
RE: ARDUINO, Petite demande - par Yuri - 16-12-2013, 11h18
RE: ARDUINO, Petite demande - par Yttrium - 16-12-2013, 15h22
RE: ARDUINO, Petite demande - par thxer - 16-12-2013, 20h27
RE: ARDUINO, Petite demande - par Yuri - 17-12-2013, 09h10
RE: ARDUINO, Petite demande - par InstinctHack - 22-12-2013, 00h54
RE: ARDUINO, Petite demande - par Yuri - 23-12-2013, 11h32

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Petite épreuve très simple InstinctHack 17 965 25-08-2013, 18h02
Dernier message: supersnail

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut