Hello,,
Ce post a pour but de monter un des montages possible et l utilisations d'une régulation par Arduino.
C est quoi un Arduino ? Arduino est un circuit imprimé prototypage en matériel libre (dont les plans de la carte elle-même sont publiés en licence libre mais dont certains composants sur la carte, comme le microcontrôleur par exemple, ne sont pas en licence libre) sur lequel se trouve un microcontrôleur qui peut être programmé.
Plusieurs modèles de cartes existent, plus ou moins puissantes. Dans notre cas, nous allons utiliser le modèle : Arduino Mega2560
Il est équipé d'un ATmega2560 de type CMS, augmentant la mémoire totale disponible à 256 ko. Il est équipé aussi de la nouvelle puce USB ATmega8U2
Caractéristiques:
Microcontrôleur ATmega2560
Tension de fonctionnement 5 V
Tension d'alimentation (recommandée) 7- 12 V
Tension d'alimentation (limites) 6 - 20V
Nombre d'E/S 54 (dont 14 pouvant générer des signaux PWM)
Nb ports "Analogique/Numérique" 16
Courant max. par E/S 40 mA
Courant pour broches 3.3 V 50 mA
Mémoire Flash 256 KB (ATmega328) dont 8 Kb utilisés par le bootloader
SRAM 8 Kb (ATmega328)
EEPROM 4 Kb (ATmega328)
Vitesse horloge 16 MHz
Cette carte qui, pour faire un parallèle avec un pc, serait la carte mère. Comme sur un pc, nous pouvons ajouter des cartes périphériques ( sur un pc ça serait une carte vidéo, carte son ......... )
Grâce à sa licence libre, une multitude de cartes additionnelles en tous genres existent pour l'Arduino.
-
Afficheurs : Module Shield afficheur tactile couleur TFT 2,8" V , Shield OpenSegment 4 digits , Module Shield afficheur LCD 2x16 caractères RVB , 3.2" TFT Touch LCD SD , 7" TFT Touch LCD SD...........................
-
GPS / GSM : Module "Shield GSM" , Module GPS I2C pour arduino , Module "Shield station météo" ...................
-
wifi et Ethernet : SainSmart 8 Channels WIFI , Ethernet Shield module ..........................
-
Capteurs : pression , niveau , ph , température , mouvement , IR , eau .................................
-
Ampli : un ou plusieurs relais , carte amplificateur de signal ...............
-
Module de temps : horloge .............
Bref, on peut à peu près tout faire avec cette bébête ****1
Les prix : Comme la licence est libre on retrouve pas mal de marques qui proposent des copies de l'Arduino : SainSmart , Geeetech Iduino ............... Pour un vrai Aduino, compter 40 €, et pour une copie 15 € ................
Pour la partie des périphériques, les prix vont d un euros à un quarantaine d euros, mais en général un périphérique ne coute pas grand chose.
Tout cela ce trouve sur ebay
J ai recu ma carte !!!!!!!!!!!!! et après ?
Comme nous avons vu l'Arduino est programmable sous licence libre. Il existe un multitude de programmes tout faits ou en partie déjà faits. Pour cela nous avons besoin d un compilateur ( soft qui injecte depuis un pc ou un mac le programme dans l arduino )
Dispo ici
http://arduino.cc/en/Main/SoftwareAprès la présentation de la bête, revenons à nos moutons ou plutôt à nos poissons
Matériel utilisé :
- 1 Arduino Mega2560
- 1 ecran : 3.2" TFT Touch LCD SD Reader ou 7 Inch TFT LCD Display Module Font IC 800x480
- 1 TFT Shield Kit For Arduino ou TFT/SD Shield for Arduino DUE TFT LCD Module SD Card Adapter 2.8 3.2 inch Mega
- 1 module horloge : DS1307 Arduino" ou "RTC arduino
- 3 sondes de température : DS18B20 waterproof
- 1 carte Mega Screw Shield ( pas obligation mais ca facilite la vie )
- 3 résistances de 4,7k
- 1 alim 5 V stabilisé
Partie horloge
Partie Arduino + ecran + TFT Shield Kit For Arduino
+carte Mega Screw Shield
Au sujet du câblage j ai trouvé une alternative a la carte Mega Screw Shield qui rends les branchements simple cette alternative consiste a utiliser un peigne et de le souder sur la carte
il suffis d utiliser des fiches de ce type
Sur la carte ca donne ca tout les cables sont débrochable
Cablage PWM
Eclairage 1 : pin PWM9
Eclairage 2 : pin PWM10
Eclairage 3 : pin PWM11
Eclairage 4 : pin PWM12
Eclairage 5 : pin PWM13
Alimentation driver LED
Eclairage 1: Analogique 3
Eclairage 2: Analogique 4
Eclairage 3: Analogique 5
Eclairage 4: Analogique 6
Eclairage 5: Analogique 7
Flotteur niveau réserve d'eau : Analogique 0
Refroidissement du bac : 43
Ecumeur : 44
Remontée : 45
Ventilation rampe : 46
Brassage : 47
Chauffage : 48
Sondes températures : 49
Horloge :
Cote horloge Cote arduino
VCC -> Sur le 5v
GND -> Sur le GND
SDA -> Sur la 20
SCL -> Sur la 21
Sonde de température Cote sonde cote arduino
- Fil rouge -> le 5v
- Fil noir -> GND
- Fil restant -> borne 49
Placez la résistance de 4,7k entre le 5v et le fil qui va sur la borne 49
Il est possible de changer les consignes d alerte : dans le menu mesure
void drawmesure(){
// Affichage de l'icone thermometre en fonction de la température
if (tempbac>=22 && tempbac<24){myFiles.loadBitmap(2,20,24,24,"thermof.raw");} // Temperature trop basse
if (tempbac>=24 && tempbac<=26){myFiles.loadBitmap(2,20,24,24,"thermo.raw");} // Température idéal
if (tempbac>26 && tempbac<29){myFiles.loadBitmap(2,20,24,24,"thermoal.raw");} // Température trop haute
if (tempbac<22||tempbac>=29){myFiles.loadBitmap(2,20,24,24,"death.raw");}
remplace par ( en rouge les modifies )
void drawmesure(){
// Affichage de l'icone thermometre en fonction de la température
if (tempbac>=
16 && tempbac<
20){myFiles.loadBitmap(2,20,24,24,"thermof.raw");} // Temperature trop basse
if (tempbac>=
20 && tempbac<=
26){myFiles.loadBitmap(2,20,24,24,"thermo.raw");} // Température idéal
if (tempbac>
26 && tempbac<
30){myFiles.loadBitmap(2,20,24,24,"thermoal.raw");} // Température trop haute
if (tempbac<
16||tempbac>=
30){myFiles.loadBitmap(2,20,24,24,"death.raw");}
Dans ma modif que j ai fait Température idéal entre 20 et 26
Alim arduino Plusieurs solutions sont possibles :
- l alim classique de 6 à 12 v par la prise sur l arduino ( le gros problème est la limitation de courant des périphériques dû à la régulation par l arduino ) par exemple pour un écran 7" qui rend ce type de montage impossible par manque de puissance
- l alim stabilisée 5 v à brancher ( 2 façons possibles le - de l alim sur le GND de larduino et le + de l alim sur le VIN de l arduino ou bien par un cable usb : fil rouge sur le + alim et fil noir sur le - alim ) le gros avantage est de passer après le limitateur de courant et donc même avec un ecran 7 " nous avons assez de puissance pour l alimenter
Programme et instalation La partie programme développée par Sébastien présent sur
http://www.ilot-recif.fr Sont disponibles ici
https://onedrive.live.com/?cid=6405ee5f ... rPAuEFWW-A ( SebduinoPureEdition pour ecran 3.2" et SebduinoHD pour ecran 7" )
Voila les fonctions
Éclairages
- Gestion de 5 canaux d'éclairages indépendants
- Gestion d'éclairage progressif ( maximum 240min pour la progression )
- Réglage puissance max pour chaque canaux
- Possibilité de renommer chaque canaux ( 6 caractère max )
Pompes doseuses
- Gestion de 8 pompes doseuses ( limité à 1 dose par jour/canal )
- Possibilité de renommer chaque canaux ( 6 caractères max )
Oscillateurs
- Gestion de 2 oscillateurs
- Réglages des butées d'angles pour chaque oscillo
- Réglages vitesses pour chaque oscillo
Mode Auto/ON/OFF ( raccourci sur l'écran principal )
- Éclairages
- Écumeur
- Brassage
- Remontée
Divers
- Affichage de la température du bac
- Affichage température pièce
- Gestion ventilation bac ( dans mon cas cela va être utilisé pour mon coffret élec )
- Gestion chauffage du bac
- Temporisation des menus ( retour sur l'écran principal au bout de 2min )
- Temporisation de l'écumeur au démarrage
- Écran de veille au bout de 2 min d'inactivité ( désactivable )
Installation du compilateur : http://arduino.cc/en/Main/Software Une fois installé vient le moment de brancher la carte sur le PC qui devrait vous la reconnaître comme nouveau périphérique. Le pilote pour USB se trouve dans le dossier "arduino-1.0.3/drivers/FTDI USB Drivers
Une fois l install finie il faut savoir sur quel port l arduimo s est mis Sous windows. aller dans Panneau de configuration/Gestionnaire de périphériques et Ports COM et LPT vous allez voir ça
Important par la suite se rappeler sur quel port se trouve la carte lancer le logiciel Arduino :
Allez dans outils / type de carte / et sélectionnez arduino Mega 2560
Définir le com (chez moi le com 7)
Allez dans outils /port serie et sélectionnez celui trouvé dans le gestionnaire de périphériques
Dans le programme de Sébastien , il fournit les librairies nécessaires au bon fonctionnement de l'automate . Il faut bien les copier dans le dossier "arduino-1.0.3/libraries"
et remplacer celle de base par la sienne Fin de l install du compilateur
Installation du programme de Sébastien Une fois dézippé ouvrir le fichier et double cliquer sur SebduinoPureEdition
Le compilateur doit s ouvrir, reste à cliquer sur la fleche
Le programme doit passer du pc à l arduino. Si tout va bien vous aurez un message de fin ****1
Calibrage de l écran tactile
Allez dans arduino-1.0.3/libraries/Utouch/examples/Arduino/UTouch_Calibration" Double cliquer, ça va vous ouvrir le compilateur. Reste à transférer. Là vous allez avoir l écran noir, il va vous demander de toucher l écran pour continuer
Nouvel écran avec 8 croix à toucher ( je vous conseille d utiliser un cure-dents par exemple )
Si tout va bien, nouvel écran
Noter ces 3 valeurs et fermer le compilateur
Aller dans arduino-1.0.3/libraries/Utouch/ et trouver le fichier UTouchCD.h , l ouvrir avec éditeur de texte par exemple notepad
Remplace les 3 valeurs de ce fichier par les 3 valeurs que vous a donné le calibrage , sauvegardez et fermez
Une fois fait, recompiler le programme de Sebastien
Note : Parfois les modifications de calibrage ne se sauvegardent pas ou se perdent à la suite d un débranchement de l arduino. Si le cas se produit pour vous :
Allez dans Utouch /harware/ave , là vous avez un fichier HV_AVR.inc Remplacez le par ça
void UTouch::touch_WriteData(byte data)
{
byte temp;
temp=data;
cbi(P_CLK, B_CLK);
for(byte count=0; count<8; count++)
{
if(temp & 0x80)
sbi(P_DIN, B_DIN);
else
cbi(P_DIN, B_DIN);
temp = temp << 1;
cbi(P_CLK, B_CLK);
sbi(P_CLK, B_CLK);
}
}
word UTouch::touch_ReadData()
{
word data = 0;
for(byte count=0; count<12; count++)
{
data <<= 1;
sbi(P_CLK, B_CLK);
cbi(P_CLK, B_CLK); delayMicroseconds(2);
if (rbi(P_DOUT, B_DOUT))
data++;
}
return(data);
}Une fois fait recompiler le programme de Sebarduino
Partie carte SD Il vous faut absolument une carte
2GO Maxi Formatée en FAT , unité d'allocation 32koUne fois fait allez dans le dossier SebduinoPureEdition ouvrir le dossier carte SD , copier et coller sur la carte SD
Voilà, fin de l install
Partie puissance câblages leds Partie alimentation :
Une led est un semi-conducteur il est donc conseillé de limiter son courant !!!! Pour cela 2 solutions par des résistances si transfo simple ou par des driver" de LED.
Comme nous l avons déjà vu notre aduino va nous envoyer un signal PWW. Mais au juste c est quoi un signal PWW ?
En fait, c est tout bête. Ce sont des impultions de courant dans une période donnée
Si je prends la première ligne du schéma pour une période le courant est présent à 20 %, le reste de la période pas de courant ( la led va s allumer faiblement )
Si je prends la deuxième ligne la période où il y a du courant est de 50 % la led va donc éclairer plus fort
Si je prends la troisième ligne la période où le courant est là est de 80% la led va donc éclairer encore plus fort
Seul pb, l arduino a une puissance très limitée et ne peut pas alimenter directement des leds. Nous avons donc besoin d une carte relai ou amplificateur dispo la
http://www.ledsee.com/index.php?option= ... Itemid=101
Cette carte a 2 fonctions elle amplifie le signal et en plus elle limite le courant soit en 350 mA ou 700 mA ou 1A
Principe de câblage
A lire aussi
:
http://www.flossmanualsfr.net/arduino/_all