voici un projet de gazogéne automatisé a fonctionnement continu commencé il y a preque 1 an
sa conception est simple pour être reproductible façilement et a moindres couts
le systéme est composé de deux arduino UNO:
le premiers contôle la température et le remplissage du foyer, le deuxiéme accouplé au pavé tft tactile adafruit gére l'interface de contrôle.
je cherche un programmeur qui pourrait m'aider a mettre le code au propre car je sais bien souder mais la programmation avec mes gros doigts c'est pas ça
j'ai bricolé un truc avec deux arduino mais je pense que de tout mettre sur une mega serait une meilleure option ( je pourrai enfin lire la température sur le TFT) mais la je suis au bout de mes capacités avec les booléens
j'ai fait un brave code qui tourne, mais cela a finit avec des delays grossiers dans l'état nominal
pour faire tourner le convoyeur par séquences
désolé mais je suis limité par la limite max de charactéres, je vais le mettre en plusieurs fois
pour ce code mon frêre m'avait expliquer la fonction millis()/100 comme le moyen d'exprimer les valeures dans les #define de temps en secondes au lieu de milliémes,
je bute sur le convoyeur car celui-ci a trop de debit pour le broyeur est comme les variteurs de vitesses on tous cramés j'avais trouvé cette astuce de déclanchements cycliques
#include <max6675.h>
#define outPinConvoyeur 6
#define outPinBroyeur 8
#define outPinBougies 5
#define outPinDecendreur 3
#define outPinVentilo12v 7
#define ETAT_VEILLE 199
#define ETAT_PRECHAUFFAGE 200
#define ETAT_NOMINAL 201
#define ETAT_KO 198
#define THRESHOLD_TEMPERATURE_MAX 3000
#define INITIALISATION_PRECHAUFFAGE_OUI 5
#define INITIALISATION_PRECHAUFFAGE_NON 9
#define INITIALISATION_DECENDRAGE_OUI 7
#define INITIALISATION_DECENDRAGE_NON 8
#define INITIALISATION_VENTILO12_OUI 11
#define INITIALISATION_VENTILO12_NON 12
#define INITIALISATION_CHARGEMENT_OUI 6
#define CAPTEUR_SEUIL1_DETECTE_YES 1
#define CAPTEUR_SEUIL1_DETECTE_NO 0
#define CAPTEUR_PHOTO_SEUIL1_LUMIERE_OK 20 // si < Lumière ==> OK
#define CAPTEUR_PHOTO_SEUIL2_LUMIERE_KO 50// si > Pas de Lumière ==> KO
#define DUREE_CYCLE_DECENDRAGE 300
#define DUREE_DECENDRAGE 10
#define DUREE_CYCLE_LATENCE1 120
#define DUREE_CYCLE_LATENCE2 200
#define DUREE_LATENCE_DEPART_VENTILATION 600
#define DUREE_LATENCE_CHARGEMENT 50
int analogPin = A3; // inter allumage TFT
int analogPin2 = A4; // inter prechauffage TFT
int analogPin3 = A5; // inter ventilation TFT
// DECLARATION VARIABLES GLOBALES ///////////////////////////////////////////////////////
int etatFonctionnement;
int dureeLatence1;
int dureeLatence2 ;
int tempsFinConvoyage ;
int tempsFinBroyage ;
int tempsLatenceChargement ;
int initialisationPrechauffage ;
int tempsDureeDecendrage ;
int tempsCycleDecendrage ;
int initialisationVentilo12 ;
int initialisationChargement ;
int initialisationDecendrage ;
int tempsDepartVentilation ;
int tempsDetectionCapteurPhotoSeuil_1;
int detectionCapteurPhotoSeuil_1;
int thermoDO = 11; // Data Out Port SPI sur 4-5-6
int thermoCS = 10; //Chip Select
int thermoCLK = 9; //Clock
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int val = 0; // ecran TFT état préchauffage
int val2 = 0; // ecran TFT état nominal
int val3 = 0; // écran TFT ventilation
///////////////////////////////// SETUP() //////////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(9600);
pinMode(outPinConvoyeur,OUTPUT);
pinMode(outPinBroyeur,OUTPUT);
pinMode(outPinBougies,OUTPUT);
pinMode(outPinDecendreur,OUTPUT);
pinMode(outPinVentilo12v,OUTPUT);
pinMode(outPinVentilo5v,OUTPUT);
pinMode(outPinLed_KO,OUTPUT);
digitalWrite(outPinBroyeur, LOW);
digitalWrite(outPinConvoyeur, LOW);
digitalWrite(outPinBougies, LOW);
digitalWrite(outPinDecendreur, LOW);
digitalWrite (outPinVentilo12v, LOW);
delay (3000);
etatFonctionnement = ETAT_VEILLE;
}
/////////////////////////////// LOOP() ////////////////////////////////////////////////////////////////////
void loop() {
int tempsDepuisInitArduino = millis()/100;
Serial.print (val);
val = analogRead(analogPin);
Serial.print (val2);
val2 = analogRead(analogPin2);
Serial.print (val3);
val3 = analogRead(analogPin3);
double temperatureGaz = thermocouple.readCelsius();
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
delay(500);
switch (etatFonctionnement){
bon c'est sur c'est pas le même rendement qu'un chalumeau volant mais il y quand même quelques W excédentaires
pour le drainage des cendres il a fallu trouver le bon diamétre des trous de la grille et la faire tourner de 1/2 tour toutes les 30s avec un moteur de tourne broche, c'est une histoire de compromis entre le renouvellement du foyer et le debit de cendres.
monoxyde:
pour le drainage des cendres il a fallu trouver le bon diamétre des trous de la grille et la faire tourner de 1/2 tour toutes les 30s avec un moteur de tourne broche, c'est une histoire de compromis entre le renouvellement du foyer et le debit de cendres.
"Compromis , chose due" comme disait un trop tôt disparu
réflexion à chaud
AMHA tu dois avoir sur cette partie "système" une(des) bonne piste d’amélioration du rendement final.
là ton ejection/remplissage "carbu" n'est gérée il me semble qu'au "pifomètre de precision " 8)
Pour l'alimentation ce n'est pas vraiment du continu il y a une zone tampon qui rend le fonctionnement autodémerdant avec une remise a niveau tout les 2mns environ
le problême du décendrage sur un gazo viens du fait qu'il n'y a pratiquement pas de drainage aérodynamique car l'apport en air plus faible que pour une combustion compléte alors le foyer a tendance a ce figer
la reduction des cendres est pratiquement la même mais il lui faut un petit coup de pied pour bouger
sur les vidéos on voit souvent les gazoneurs trainer autour du foyer avec un marteau !!!
monoxyde:
... pour une combustion compléte alors le foyer a tendance a ce figer
la reduction des cendres est pratiquement la même mais il lui faut un petit coup de pied pour bouger
sur les vidéos on voit souvent les gazoneurs trainer autour du foyer avec un marteau !!!
bonjour
Y a pas trop de mystere , c'est aussi la methode pragmatique * utilisée dans des installations industrielles d'incineration :
Le "marteau" est alors remplacé par des masses sur verins pneumatiques qui tapent sur les enveloppes.
Dans ton cas , utiliser un "bon electro-aimant" est peut etre une idée ...
* C'est aussi une des causes principales des nuisances sonores induites pour les "riverains"
J'ai essayer pas mal de choses et le moteur de tourne broche a 19€ sur ebay est une option qui marche plutôt bien tout en étant trés simple a fabriquer.
le nouveau projet maintenant va étre de tester un systéme multi foyers ( va vraiment falloir que j'achéte une mega) et de le tester sur une mazda qui traine dans le jardin.