Go Down

Topic: Contrôleur de T°, Humidité avec pilotage manuel ou automatique (Read 6610 times) previous topic - next topic

dfgh

hello JLM, encore une question sur une ligne de code que j'ai du mal à comprendre:

si j'ai (a?x:y) il faut comprendre si a, alors x sinon y.

maintenant avec ceci:
void ventilateur(commandeAppareil c)
{
if ((ventilateurOn ? MARCHE : ARRET) != c) { // si on change d'état
    ventilateurOn  = (c == MARCHE);

puis je dire si (VentilateurOn est =1 alors Marche sinon Arrêt)
                     on suppose que VentilateurOn est à 0 donc VentilateurOn=ARRET
                     donc le if devient : VentilateurOn = arret est il différent de C.
                     si on suppose qu'on a appelé la fonction avec le paramètre MARCHE
                     alors la condition du if est vérifiée et on entre dans l'accolade
                     et VentilateurOn =(c==Marche) devient VentilateurOn =1;
je pense que c'est bien comme ça qu'il faut interpréter ce code, mais cela me semble très compliqué par rapport à :
                     void ventilateur(commandeAppareil c)
                     {
                        if VentilateurOn==C) {faire ceci}
                         else{faire cela}

quel est l'intérêt de cette façon de coder ?

merci d'éclairer ma lanterne

J-M-L

Dans l'absolu c'est quasi pareil mais...

Je suis un adepte de la cohérence des types parce que j'ai horreur quand on mélange les torchons et les serviettes.

VentilateurOn est un booléen et c n'est pas un booléen, c'est un commandeAppareil

En conséquence les comparer va dépendre d'une promotion (standard au niveau du compilo) mais l'expression ternaire est la pour comparer c avec MARCHE ou ARRET sans avoir à dépendre d'une convention que 0 serait l'un et 1 l'autre.

Pourquoi est-ce utile (outre la satisfaction intellectuelle) ?
- Par exemple si vos relais étaient actifs à HIGH au lieu de LOW, je n'ai qu'à changer la définition de  MARCHE et ARRET et le code reste cohérent.
- ça me permet d'introduire D'autres états, plus loin dans le code vous verrez qu'il y a un état « inconnu ». Je reste en contrôle de l'evolution De mon code
- Si un jour vous utilisez des langages fortement typés genre SWIFT ou autres alors votre code ne fonctionnerait pas.. l'informatique allant dans cette direction autant prendre de bonnes habitudes tout de suite

Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

dfgh


Col68

Bonsoir JML, désolé de vous déranger avec mes aventures j'aurais juste une question. J'ai des modules à boutons de récup et je me demandais si je ne pouvais pas gardé celui avec 5 boutons afin de facilité la fixation sur la boite de dérivation ?



Seulement je vois qu'il y a 6 fils, donc les 5 pour les 5 boutons et lequelle pourrait aller au GND, je soupçonne celui au centre le 3eme a partir de gauche mais pas sûr ?



Désolé JML, merci d'avance.

bricofoy

bonsoir
pour des questions comme celle-ci qui n'ont rien à voir avec le sujet du post, il vaudrait mieux créer un nouveau sujet, ce serait bien plus clair.
quoi qu'il en soit, le schéma de ta platine semble être celui-ci :
pas forcément simple à réutiliser. mais il est sans doute possible de couper une piste et ressouder un fil entre deux poussoirs pour utiliser comme commun le premier fil de la nappe, avec le schéma c'est assez évident de voir ce qu'il faut modifier, je vous en laisse juge
-tu savais que si tu passe le CD de windows à l'envers, tu entends une chanson satanique ?
-non, mais il y a pire : à l'endroit, ça l'installe !

dfgh

hello, je t'avais préparé ça, mais notre ami bricofoy est passé avant moi

william91

Bonjour à tous ,
je me présente, William , débutant en arduino et passionné de réptiles .
je désirais réaliser ce montage , mais voici plusieurs jours que j'essaie de compiler le code sans y arriver.
une multitude de messages d'erreurs apparaissent .
j'ai essayé avec différentes version d'IDE , supprimé les bibliothèques et chargé celles des liens ,en vain.


voici la trés longue  liste d'erreurs ...

si vous pouviez me mettre sur la bonne voie .

merci à tous .

William








Arduino : 1.8.4 (Windows 10), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::write(unsigned char, unsigned char)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::write_bytes(unsigned char const*, unsigned int, bool)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::reset()'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::write_bit(unsigned char)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::read_bit()'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::read()'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::read_bytes(unsigned char*, unsigned int)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::select(unsigned char const*)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::skip()'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::depower()'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::reset_search()'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::OneWire(unsigned char)'

Plusieurs bibliothèque trouvées pour "OneWire.h"
Utilisé : C:\Users\william\Documents\Arduino\libraries\OneWire-master
libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

Non utilisé : C:\Users\william\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master
libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::OneWire(unsigned char)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::target_search(unsigned char)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::search(unsigned char*, bool)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::crc8(unsigned char const*, unsigned char)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::crc16(unsigned char const*, unsigned int, unsigned int)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\Arduino-Temperature-Control-Library-master\OneWire.cpp.o (symbol from plugin): In function `OneWire::write(unsigned char, unsigned char)':

(.text+0x0): multiple definition of `OneWire::check_crc16(unsigned char const*, unsigned int, unsigned char const*, unsigned int)'

libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Erreur de compilation pour la carte Arduino/Genuino Mega or Mega 2560

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

J-M-L

Virez la libraire OneWire que vous avez installé
Plusieurs bibliothèque trouvées pour "OneWire.h"
Utilisé : C:\Users\william\Documents\Arduino\libraries\OneWire-master
libraries\OneWire-master\OneWire.cpp.o (symbol from plugin):(.text+0x0): first defined here


Il faut utiliser celle standard
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

william91

Tout simplement ,
et en plus ça ne met plus de message d'erreur . ;)
Merci beaucoup.


J-M-L

Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Col68

Bonjour JML,

J'ai enfin reçu le matériel et hâte de commencé ce Big Projet, je vais commencer par mettre de coter les bibliothèques portant des noms similaires à ceux du projet pour ne pas avoir de problème de téléversement.

Je vous remercie infiniment pour votre partage géant.

Cordialement.


SDE81

Bonjour JML ,
je me présente Sébastien et je débute en Arduino.
j'ai essayé de modifier le programme pour faire un enregistrement sur une carte SD toutes les heures.
J'ai ajouté un bout de programme trouvé dans un tuto, l'enregistrement se fait mais j'ai l'heure qui ne fonctionne plus.
Pouvez-vous m'aider.
Merci par avance.

J-M-L

Bonjour

Je suis en vadrouille, je n'ai pas mon mac sous la main donc je ne peux pas lire votre fichier joint simplement

Comment parlez vous à votre carte SD (--> utilisez la librairie SDFat) ? Je suppose que c'est en SPI ? Avez vous d'autres composants sur le bus SPI ? Êtes vous sur une UNO ou une MEGA ? Qu'avez vous sur la broche D10 (Arduino UNO) ou D53 (Arduino Mega) ?

Quelle RTC utilisez vous ?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

bricofoy

Bonjour JML ,
je me présente Sébastien et je débute en Arduino.
j'ai essayé de modifier le programme pour faire un enregistrement sur une carte SD toutes les heures.
J'ai ajouté un bout de programme trouvé dans un tuto, l'enregistrement se fait mais j'ai l'heure qui ne fonctionne plus.
Pouvez-vous m'aider.
Merci par avance.
Et la lecture de température par le ds18b20 fonctionne toujours ? car dans ton code la pin 3 qui est utilisée pour le bus oneWire est aussi utilisée pour une led rouge liée à la partie datalogger, et qui s'allume à chaque écriture sur la carte SD.

L'heure dans l'enregistremment est OK et c'est juste l'affichage qui pose problème,ou iln'y a pas d'heure nulle part ?
-tu savais que si tu passe le CD de windows à l'envers, tu entends une chanson satanique ?
-non, mais il y a pire : à l'endroit, ça l'installe !

SDE81

Bonsoir  et merci pour vois réponses.

j'utilise une carte Arduino Mega.
pour l'heure c'est ok après avoir mis la bonne RTC (RTC_PCF8523)
et voila les erreurs après compilation.

Arduino : 1.8.5 (Mac OS X), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp: In member function 'void Sd2Card::chipSelectHigh()':
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:172:5: error: 'SDCARD_SPI' was not declared in this scope
    SDCARD_SPI.endTransaction();

    ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp: In member function 'void Sd2Card::chipSelectLow()':
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:181:5: error: 'SDCARD_SPI' was not declared in this scope
    SDCARD_SPI.beginTransaction(settings);

    ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:181:33: error: 'settings' was not declared in this scope
    SDCARD_SPI.beginTransaction(settings);

                                ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp: In member function 'uint8_t Sd2Card::init(uint8_t, uint8_t)':
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:280:3: error: 'SDCARD_SPI' was not declared in this scope
  SDCARD_SPI.beginTransaction(settings);

  ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:280:31: error: 'settings' was not declared in this scope
  SDCARD_SPI.beginTransaction(settings);

                              ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp: In member function 'uint8_t Sd2Card::setSckRate(uint8_t)':
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:524:14: error: 'settings' was not declared in this scope
    case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;

             ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:524:57: error: 'SPI_MODE0' was not declared in this scope
    case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;

                                                        ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:524:66: error: 'SPISettings' was not declared in this scope
    case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;

                                                                 ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp: In member function 'uint8_t Sd2Card::setSpiClock(uint32_t)':
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:540:3: error: 'settings' was not declared in this scope
  settings = SPISettings(clock, MSBFIRST, SPI_MODE0);

  ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:540:43: error: 'SPI_MODE0' was not declared in this scope
  settings = SPISettings(clock, MSBFIRST, SPI_MODE0);

                                          ^
/Users/SDE/Documents/Arduino/libraries/SD/src/utility/Sd2Card.cpp:540:52: error: 'SPISettings' was not declared in this scope
  settings = SPISettings(clock, MSBFIRST, SPI_MODE0);

                                                   ^
Plusieurs bibliothèque trouvées pour "SD.h"
Utilisé : /Users/SDE/Documents/Arduino/libraries/SD
Non utilisé : /private/var/folders/x2/pd9r0vw52s1_6mzh2by0y03r0000gn/T/AppTranslocation/E2F70D2C-61F3-4B7D-B4C8-DEAD4B772783/d/Arduino.app/Contents/Java/libraries/SD
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Mega or Mega 2560

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Merci pour votre aide.

Go Up