chauffage solaire douche piscine

patrick63730

Well-known member
Bonjour j'ai monté un systeme de régulation de chauffage solaire grace a mag1 ,c'est lui qui as tout pondu ,le schema les pcb et le programe ,moi je n'ai fait que réaliser le montage ,mais comme il ne faut rien me montrer si on ne veut pas etre copié j'ai réussi avec assez de difficultées ,surtout au niveau de la ponctuation et accentuation a faire ceci ,qui fonctionne sur le simulateur , j'ai des pcb qui ont servi pour le chauffage solaire il m'a suffi d'en utilier une partie pour faire mon projet ,une picaxe plus petite aurai suffit mais j'avais des 20m2 en stock et le pcb allant avec ,mais je suis preneur de conseils pour l'accentuation et ponctuation sur PE6 car j'ai beau lire et relire je n'ai pas tout compris
consignes de travail si T panneau>T ballon =circulateur on
siT panneau < T ballon = circulateur of
la temperature du ballon est gérée par un thermostat interne a celui -ci

C:\Users\Utilisateur\Documents\chauffage solaire douche piscine.bas
Exported from PICAXE Editor (www.picaxe.com) 1
01 ;chauffage solaire douche piscine
02 #picaxe 20M2
03 setfreq M16
04 symbol DSpano=C.7 ;Tpanneau
05 symbol selec=pinC.6 ;poussoir de selection
06 symbol Dsbalon=C.5 ;T ballon
07 symbol valid=pinC.6 ;poussoir de validation
08 symbol potar=B.5 ;pot de reglege consignes
09 Symbol LCD=B.0 ;LCD 2004
10 symbol circBal=outpinB.1 ;circulateur ballon
11 symbol Tpano =b1
12 symbol Tbalon =b2
13 symbol Cbalon =b6
14 symbol varb =b10 ;variable byte
15 symbol baud =N2400_16
16 dirsC=%00000000
17 dirsB=%00011111
18 pullup%1111111100000000;pullup sur les broches C
19 ;*****************************
20 bit0=1 ;simu MST
21 serout B.0,baud,(254,1)
22 serout B.0,baud,(254,130,"Pa Ba")
23 read 0,Cbalon;lecture des consignes en EEPROM
24 ;if Cbalon=0 then gosub consigne; si EEPROM vide
25 Cbalon=75; pour essai
26 do
27 readtemp Dspano,Tpano ; sur C.7 :readadc a remplacer par readtemp
28 readtemp Dsbalon,Tbalon ;sur C.5
29 serout B.0,baud,(254,192,"T",#Tpano,"",254,198,#Tbalon,"")
30 serout B.0, baud,(254,212,"P") ;petite verrue pour reafficher le "P",qui s'efface
avec le "" de 1
31 if valid=0 or bit0=1 then gosub consigne ;passage par consigne a la MST
32 gosub gescirc
33 loop
34 ;*************************************************
35 consigne:
36 bit0=0 ;a la MST seulement
37 serout B.0,baud,(254,148,"c",254,165,"")
38 return
39 gescirc:
40 if Tbalon>=90 or Tbalon>= Tpano then
41 circBal=0
42 serout B.0,baud,(254,218,#circBal)
43 endif
44 varb=Tbalon+5
45 if Tpano>varb then
46 circBal=1
47 endif
48 return

j'ai copié la majorité du texte sans pour autant comprendre une partie des caractéres
 
Bonjour j'ai monté un systeme de régulation de chauffage solaire grace a mag1 ,c'est lui qui as tout pondu ,le schema les pcb et le programe ,moi je n'ai fait que réaliser le montage ,mais comme il ne faut rien me montrer si on ne veut pas etre copié j'ai réussi avec assez de difficultées ,surtout au niveau de la ponctuation et accentuation a faire ceci ,qui fonctionne sur le simulateur , j'ai des pcb qui ont servi pour le chauffage solaire il m'a suffi d'en utilier une partie pour faire mon projet ,une picaxe plus petite aurai suffit mais j'avais des 20m2 en stock et le pcb allant avec ,mais je suis preneur de conseils pour l'accentuation et ponctuation sur PE6 car j'ai beau lire et relire je n'ai pas tout compris
consignes de travail si T panneau>T ballon =circulateur on
siT panneau < T ballon = circulateur of
la temperature du ballon est gérée par un thermostat interne a celui -ci

C:\Users\Utilisateur\Documents\chauffage solaire douche piscine.bas
Exported from PICAXE Editor (www.picaxe.com) 1
01 ;chauffage solaire douche piscine
02 #picaxe 20M2


j'ai copié la majorité du texte sans pour autant comprendre une partie des caractéres
Bonsoir,
Il y a peut être de réglages à faire dans "options de simulation/Fichiers/Type de fichiers : Unicode(UTF-16)
Et langue: Français , bien sûr
Pour le code joint, il faut une copie sans les n° de ligne, sinon, on peut rien faire.
MM
 
Bonsoir,
Il y a peut être de réglages à faire dans "options de simulation/Fichiers/Type de fichiers : Unicode(UTF-16)
Et langue: Français , bien sûr
Pour le code joint, il faut une copie sans les n° de ligne, sinon, on peut rien faire.
MM
Bonjour comment ça il est possible d'écrire le code en français ? Cela m'intéresse beaucoup je n'aurai pas besoin de chercher la traduction ce que j'écris
 
Je viens de faire un essai en conditions réelles mais effectivement il faut que je fasse quelques ajustements,mon afficheur n'a pas un retour correct mais je vais chercher et trouver ,il faut que je trouve seul, c'est la meilleure solution pour apprendre,si j'ai besoin d'aide je ne manquerai pas de le demander , bonne journée
Patrick
 
Bonjour comment ça il est possible d'écrire le code en français ? Cela m'intéresse beaucoup je n'aurai pas besoin de chercher la traduction ce que j'écris
Le code basic reste en anglais: if,then, while,...etc,les commandes aussi :readadc,etc... mais les commentaires sont en français, accents, etc
Les manuels ont été traduits , cliquer sur le ? coin en haut à droite , "Plus de fiches techniques", et choisir.
A +
MM
 
bonjour j'ai réussi a faire ceci qui fonctionne sur le simulateur et en conditions réelles, cependant j'ai un problème je n'ai pas encore réussi a trouver la solution pour suprimer les données dont je n'ai pas besoin sur le lcd ,et les serout lcd baud je ne comprend pas comment cela fonctionne ,j'ai cherché mais je n'ai pas trouvé de choses a lire a ce sujet ,pour mon affichage je viens de trouver en ecrivant ces quelques lignes ,mais j'avais déja tenté la meme chose sans succés j'ai constaté que l'accentuation ponctuation et espaces entre caractéres sont trés rigoureux il n'y as pas de tolérance sur un quelconque écart .




;gestion chauffage douche piscine patrick 16/04/25
#picaxe 20M2
setfreq M16
symbol DSpano=C.7
symbol selec=pinC.6
symbol DSbalon=C.5
symbol valid=pinC.0
symbol potar=B.5
symbol LCD=B.0
symbol circBal=outpinB.1
symbol Tpano =b1
symbol Tbalon =b2
symbol Cbalon =b6
symbol varb =b10
symbol diz =b11
symbol unit =b12
symbol baud =N2400_16
dirsC=%0
dirsB=%00011111
pullup %1111111100000000
;****************************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"Pa Ba Ja Pi Se")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
gosub consigne ;

do readtemp DSpano,Tpano
readtemp DSbalon,Tbalon
serout LCD, baud,(254,194,#Tpano," ",254,198,#Tbalon)
pause 200
if valid=0 then gosub consigne
gosub gescirc
loop
;*********************************************
consigne:
serout LCD,baud, (254,153," ",254,157,">")
do loop while valid=0
do loop while valid=1
do loop while valid=0
do loop while valid=1
do loop while valid=0
do loop while selec=0
serout LCD,baud, (254,157," ",254,161,">")
do loop while valid=1
do loop while valid=0
do loop while valid=1
serout LCD, baud,(254,165," ")
return
gescirc:
if Tbalon >=90 or Tbalon>= Tpano then
circBal=0
endif
varb=Tbalon+5
if Tpano>varb then
circBal=1
else circBal=0
endif
serout LCD,baud,(254,218,#circBal)

return
 

Attachments

  • IMG_20250416_201513 (1).jpg
    IMG_20250416_201513 (1).jpg
    102.5 KB · Views: 5
  • IMG_20250416_201356 (1).jpg
    IMG_20250416_201356 (1).jpg
    79.9 KB · Views: 5
Last edited:
Modification du programme , c'est ok. Et ce devrait être mis en service assez rapidement me temps de finir la rénovation de la piscine , changement de liner et surprise au démontage ,il faut que je refasse des rails, trop ancien plus dispo en pdt.

gestion chauffage douche piscine patrick 16/04/25
#picaxe 20M2
setfreq M16
symbol DSpano=C.7
symbol selec=pinC.6
symbol DSbalon=C.5
symbol valid=pinC.0
symbol potar=B.5
symbol LCD=B.0
symbol circBal=outpinB.1
symbol Tpano =b1
symbol Tbalon =b2
symbol Cbalon =b6
symbol varb =b10
symbol diz =b11
symbol unit =b12
symbol baud =N2400_16
dirsC=%0
dirsB=%00011111
pullup %1111111100000000
;****************************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"Pa Ba")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
gosub consigne ;

do readtemp DSpano,Tpano
readtemp DSbalon,Tbalon
serout LCD, baud,(254,194,#Tpano," ",254,198,#Tbalon)
pause 200
if valid=0 then gosub consigne
gosub gescirc
loop
;*********************************************
consigne:
serout LCD,baud, (254,153," ",254,157,">")
do loop while valid=0
do loop while valid=1
do loop while valid=0
do loop while valid=1
do loop while valid=0
do loop while selec=0
serout LCD,baud, (254,157," ",254,161,">")
do loop while valid=1
do loop while valid=0
do loop while valid=1
serout LCD, baud,(254,165," ")
return
gescirc:
if Tbalon >=90 or Tbalon>= Tpano then
circBal=0
endif
varb=Tbalon+5
if Tpano>varb then
circBal=1
else circBal=0
endif
serout LCD,baud,(254,218,#circBal)

return
 

Attachments

  • IMG_20250417_083414.png
    IMG_20250417_083414.png
    479.1 KB · Views: 1
Modification du programme , c'est ok. Et ce devrait être mis en service assez rapidement me temps de finir la rénovation de la piscine , changement de liner et surprise au démontage ,il faut que je refasse des rails, trop ancien plus dispo en pdt.

gestion chauffage douche piscine patrick 16/04/25
#picaxe 20M2
setfreq M16
symbol DSpano=C.7
symbol selec=pinC.6
symbol DSbalon=C.5
symbol valid=pinC.0
symbol potar=B.5
symbol LCD=B.0
symbol circBal=outpinB.1
symbol Tpano =b1
symbol Tbalon =b2
symbol Cbalon =b6
symbol varb =b10
symbol diz =b11
symbol unit =b12
symbol baud =N2400_16
dirsC=%0
dirsB=%00011111
pullup %1111111100000000
;****************************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"Pa Ba")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
gosub consigne ;

do readtemp DSpano,Tpano
readtemp DSbalon,Tbalon
serout LCD, baud,(254,194,#Tpano," ",254,198,#Tbalon)
pause 200
if valid=0 then gosub consigne
gosub gescirc
loop
;*********************************************
consigne:
serout LCD,baud, (254,153," ",254,157,">")
do loop while valid=0
do loop while valid=1
do loop while valid=0
do loop while valid=1
do loop while valid=0
do loop while selec=0
serout LCD,baud, (254,157," ",254,161,">")
do loop while valid=1
do loop while valid=0
do loop while valid=1
serout LCD, baud,(254,165," ")
return
gescirc:
if Tbalon >=90 or Tbalon>= Tpano then
circBal=0
endif
varb=Tbalon+5
if Tpano>varb then
circBal=1
else circBal=0
endif
serout LCD,baud,(254,218,#circBal)

return
Bonjour Patrick,
J'ai regardé ton programme...J'avoue ne pas voir tout compris, par ex la succession d'appuis sur valid, la position des ">",
la sub consigne ne sert pas ici, et les poussoirs ne servent pas non plus.
Mais c'est un début.
En résumé, tu veux une régulation de Tbalon , sans consigne ? Si c'est cela, on peut beaucoup simplifier.
A+
MM
 
Je peux, si tu veux, te proposer une version simplifiée., sans trucs inutiles.
Et si j'étais prof, je te suggérerais de transposer le code sur un 08M2, avec un LCD 1602, et tu garderais le 20M2 et le 2004, sous employés pour un autre projet.
Mais je ne suis pas prof, tu fais ce que tu veux...
MM
 
Bonjour MM. Je le sais bien que le matériel est sous employé ,il faut également que je rajoute une consigne T ballon, mais je suis opportuniste et ai utilisé le matériel en ma possession y compris le pcb , je travaille toujours a essayer de comprendre les bauds et les valeurs a donner
Bonne journée Patrick
 
Bonjour MM. Je le sais bien que le matériel est sous employé ,il faut également que je rajoute une consigne T ballon, mais je suis opportuniste et ai utilisé le matériel en ma possession y compris le pcb , je travaille toujours a essayer de comprendre les bauds et les valeurs a donner
Bonne journée Patrick
Le 08M2 était à titre d'exercice, sans plus.
La commande serout utilisée pour les échanges "série" entre périphériques suit le protocole RS232. Il n'y a pas de signal d'horloge (un fil suffit), mais la vitesse entre émetteur et récepteur doit être connue et fixée des deux côtés. L'unité de vitesse est le baud. Il faut aussi préciser le sens du signal ici, N ou T.
La commande de réception "serin" du LCD attend un signal en "N 2400" . Il faut adapter cette vitesse en fonction de la vitesse horloge du µC , d'où cette page:
En dehors de çà, on est pas obligé de savoir comment fonctionne le protocole RS232
MM
 
bonsoir voici ma version épurée je ne dois pas étre trops mal ,le retour du lcd est correct

;gestion chauffage douche piscine patrick 16/04/25
#picaxe 20M2
setfreq M16
symbol DSpano=C.7
symbol DSbalon=C.5
symbol LCD=B.0
symbol circBal=outpinB.1
symbol Tpano =b1
symbol Tbalon =b2
symbol Cbalon =b6
symbol varb =b10
symbol baud =N2400_16
dirsC=%0
dirsB=%00011111
pullup %1111111100000000
;****************************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"Pa Ba ")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
do readtemp DSpano,Tpano
readtemp DSbalon,Tbalon
serout LCD, baud,(254,194,#Tpano," ",254,198,#Tbalon)
pause 200
gosub gescirc
loop
;*********************************************
gescirc:
if Tbalon >=90 or Tbalon>= Tpano then ;si t ballon>=90ou t ballon>=tpanneau alors cic ballon =0
circBal=0
endif ; fin
varb=Tbalon+5 ; delta ballon =5
if Tpano>varb then ;si Tpanneau >delta ballon alors circ bal= 1
circBal=1
else circBal=0 ;sinon circ bal =0
endif
serout LCD,baud,(254,218,#circBal)
return
bonne soirée patrick
 

Attachments

  • IMG_20250421_212048 (1).jpg
    IMG_20250421_212048 (1).jpg
    83.3 KB · Views: 0
bonsoir voici ma version épurée je ne dois pas étre trops mal ,le retour du lcd est correct

;gestion chauffage douche piscine patrick 16/04/25
#picaxe 20M2
setfreq M16
symbol DSpano=C.7
symbol DSbalon=C.5
symbol LCD=B.0
symbol circBal=outpinB.1
symbol Tpano =b1
symbol Tbalon =b2
symbol Cbalon =b6
symbol varb =b10
symbol baud =N2400_16
dirsC=%0
dirsB=%00011111
pullup %1111111100000000
;****************************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"Pa Ba ")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
do readtemp DSpano,Tpano
readtemp DSbalon,Tbalon
serout LCD, baud,(254,194,#Tpano," ",254,198,#Tbalon)
pause 200
gosub gescirc
loop
;*********************************************
gescirc:
if Tbalon >=90 or Tbalon>= Tpano then ;si t ballon>=90ou t ballon>=tpanneau alors cic ballon =0
circBal=0
endif ; fin
varb=Tbalon+5 ; delta ballon =5
if Tpano>varb then ;si Tpanneau >delta ballon alors circ bal= 1
circBal=1
else circBal=0 ;sinon circ bal =0
endif
serout LCD,baud,(254,218,#circBal)
return
bonne soirée patrick
Bonjour,
Devait pas y avoir une consigne "Tbalon" ? La ligne consigne est vide.
Sinon, ok. Remarque: Même si Tbalon ne devrait pas arriver à 100°, il est prudent de placer un " " derrière #Tbalon, (peut arriver en simulation, par ex).
On peut régler les retraits dans les options et se servir de la tabulation du clavier pour les indentations.
C'est quoi l'étape suivante ? Un LCD 2004 est aussi sous exploité, un 1602 suffirait ici.
MM
 
Bonjour l'étape suivante c'est ma gestion de la régularisation thermique de mon sous sol avec un 8 M2 cette fois ci j'y travaille déjà , mais je vais mettre en service ma régularisation de douche piscine, pour la consigne du moment que j'ai un 90 degrés max ça me suffit bonne soirée et merci pour toute l'aide sans laquelle je n'y serai pas arrivé, si ce n'est en y passant des dizaines d'heures
 
Bonjour,
Je ne sais pas comment la température douche est régulée. Le plus simple est le robinet thermostatique standard.
Mais je me demande comment se comporte un robinet standard avec une t° de 90°C.
Voici par ex une version avec consigne Tbalon réglable avec 20M2 et LCD2004
Code:
#picaxe 20M2
setfreq M16
symbol DSpano=C.7
symbol DSbalon=C.5
symbol Pbal=B.5
symbol LCD=B.0
symbol circBal=outpinB.1
symbol Tpano =b1
symbol Tbalon =b2
symbol Cbalon=b3
symbol varb=b4
symbol baud =N2400_16
dirsC=%0
dirsB=%00011111
pullup %1111111100000000
;****************************************
    pause 500
    serout LCD, baud,(254,1)
    serout LCD, baud,(254,130,"Pa  Ba ")
    serout LCD, baud,(254,148,"C",254,192,"Tß",254,212,"P" )    ;ß=alt+0223 => ° sur LCD
    do
        readtemp DSpano,Tpano
        readtemp DSbalon,Tbalon
        readadc Pbal, Cbalon
        serout LCD, baud,(254,194,#Tpano," ",254,198,#Tbalon," ", 254,154,#Cbalon," ")
        pause 200   
        gosub gescirc
    loop
;*********************************************
gescirc:
    if Tbalon>=90 or Tbalon>=Tpano then
        circBal=0
    endif
    varb=Tbalon+5
    if Tpano > varb and Cbalon > Tbalon then
        circBal=1
    else circBal=0
    endif
    serout LCD,baud,(254,218,#circBal)
    return
MM
 
Bonjour et merci j'ai testé avec 254,198,#Tbalon," "comme tu me l'as suggéré mais je me trouve avec une écriture parasite après BA je vais chercher pourquoi
 
bonjour c'est en service ,j'ai viré tout le materiel de l'ancien systeme ,la sonde du ballon ne devait pas trop bien fonctionner les deux conducteurs etaient complétement a nu sur la partie terminal l'isolant n'ayant pas résisté a la température , cote panneau j'avais fait le montage avec du méplat silicone haute thempérature (180 degrés ) donc en bon état , j'ai juste conservé le relais de puissance qui me permet une coupure bipolaire du circulateur , la consigne du ballon est réglée par un potentiometre , il ne reste plus qu'a attendre le soleil pour que ça chauffe ,mais maintenant j'ai la température précise de l'eau du ballon
 

Attachments

  • la consigne est changée.jpg
    la consigne est changée.jpg
    78.7 KB · Views: 3
  • la sonde de temperature et la thermostat.jpg
    la sonde de temperature et la thermostat.jpg
    106.3 KB · Views: 2
  • la sonde du panneau.jpg
    la sonde du panneau.jpg
    101.7 KB · Views: 2
  • la sonde du ballon.jpg
    la sonde du ballon.jpg
    98.1 KB · Views: 1
  • le ballon debarrassé de l'ancien materiel.jpg
    le ballon debarrassé de l'ancien materiel.jpg
    86.6 KB · Views: 3
suite
 

Attachments

  • afficheur lcd.jpg
    afficheur lcd.jpg
    78.7 KB · Views: 2
  • le montage.jpg
    le montage.jpg
    95.7 KB · Views: 4
  • le panneau solaire.jpg
    le panneau solaire.jpg
    94.6 KB · Views: 4
  • le thermostatique et le circulateur.jpg
    le thermostatique et le circulateur.jpg
    89.4 KB · Views: 1
Bonjour non c'est bien de ds18 a 3 fils qui proviennent effectivement de chez ali, l'ancien système fonctionnait avec des sondes kty10 mais c'était un différentiel de température sans aucun retour et pas très précis si mal réglé le ballon réchauffait le panneau, aujourd'hui soleil et montée en température du ballon ce soir il est a 75 , comme ça je sais si l'eau est assez chaude pour la douche avant il fallait tester en faisant couler l'eau, encore merci pour toute l'aide bonne soirée
Patrick
 

Attachments

  • IMG_20250428_131056.jpg
    IMG_20250428_131056.jpg
    674.6 KB · Views: 3
bonjour michel j'ai encore besoin de tes lumiéres ,je suis en train de faire un programme pour une régulation thermique de mon sous sol mais je bloque j'ai lu le picaxe basic de Besqeut, tres instructif j'ai apris plus de choses et plus facilement que sur sur picaxe manuel , mais je bloque sur les
readtemp DSout,Tout
readtemp DSin,Tin
serout LCD, baud,(254,194,#Tout," ",254,198,#Tin)
pause 200 c'est ici que je suis bloqué ou est l'article qui explique cette partie , comme je ne me ferai jammais a l'anglais je travaille de façon intuitive par comparaison et difference avec les programmes que j'ai en retirant et ajoutant du texte , j'ai compris les " " les ; les changement d'état des pin les fréquences le pullup les symbols les pauses j'ai bloqué un moment avec le 8M2 jusqu'a comprendre que c'est 08M2 mais j'ai encore beaucoup a apprendre ,d'autan plus que j'ai encore plusieurs projets sous le coude , merci pour ton aide qui est précieuse
patrick

;regulation thermique sous sol
#picaxe 08M2
setfreq M16
symbol DSout=C.1
symbol DSin=C.3
symbol LCD=C.0
symbol Pin=C.4
symbol Tout=C.2
symbol Tin=C.5
symbol Cin=C.3
symbol potar=C.1
symbol open=C.2
symbol varb=C.3
symbol unit=C.3
symbol diz=C.1
symbol baud=N2400_16
dirsC=%101011
pullup %011100
;*************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"in out")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
gosub consigne ;
Do
readtemp DSout,Tout
readtemp DSin,Tin
serout LCD, baud,(254,194,#Tout," ",254,198,#Tin)
pause 200
 
bonjour michel j'ai encore besoin de tes lumiéres ,je suis en train de faire un programme pour une régulation thermique de mon sous sol mais je bloque j'ai lu le picaxe basic de Besqeut, tres instructif j'ai apris plus de choses et plus facilement que sur sur picaxe manuel , mais je bloque sur les
readtemp DSout,Tout
readtemp DSin,Tin
serout LCD, baud,(254,194,#Tout," ",254,198,#Tin)
pause 200 c'est ici que je suis bloqué ou est l'article qui explique cette partie , comme je ne me ferai jammais a l'anglais je travaille de façon intuitive par comparaison et difference avec les programmes que j'ai en retirant et ajoutant du texte , j'ai compris les " " les ; les changement d'état des pin les fréquences le pullup les symbols les pauses j'ai bloqué un moment avec le 8M2 jusqu'a comprendre que c'est 08M2 mais j'ai encore beaucoup a apprendre ,d'autan plus que j'ai encore plusieurs projets sous le coude , merci pour ton aide qui est précieuse
patrick

;regulation thermique sous sol
#picaxe 08M2
setfreq M16
symbol DSout=C.1
symbol DSin=C.3
symbol LCD=C.0
symbol Pin=C.4
symbol Tout=C.2
symbol Tin=C.5
symbol Cin=C.3
symbol potar=C.1
symbol open=C.2
symbol varb=C.3
symbol unit=C.3
symbol diz=C.1
symbol baud=N2400_16
dirsC=%101011
pullup %011100
;*************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"in out")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
gosub consigne ;
Do
readtemp DSout,Tout
readtemp DSin,Tin
serout LCD, baud,(254,194,#Tout," ",254,198,#Tin)
pause 200
Bonsoir Patrick
Les manuels 1,2 et 5 ont été traduits en français: https://picaxe.com/datasheet-list/
As tu aussi lu ces pages ?: https://electromag1.wifeo.com/les-picaxes-et-leur-basic.php
Si non, tu la lis et on en reparle
Par ex. pour le 08M2
Dans PE6, en plaçant la souris sur les broches du dessin du µC, tu as la liste des possibilités de chaque broche pendant quelques secondes, c'est aussi dans les docs, voir P.J.
C.0 ne peut être qu'une sortie, pour le LCD, c'est ok.
C.1 peut être beaucoup de choses , C.2 aussi
Mais C.3 ne peut être qu'une entrée 0 ou 1
C.4 a 4 fonctions
C.5 sert à la programmation et peut éventuellement être une entrée 0 ou 1, comme C.3
En débutant le programme par la désignation du type de picaxe, ici "#picaxe 08M2", le vérificateur de syntaxe détecte les attributions erronées, comme DSin sur C.3, par ex.
MM
 
Last edited:
Bonsoir Patrick
Les manuels 1,2 et 5 ont été traduits en français: https://picaxe.com/datasheet-list/
As tu aussi lu ces pages ?: https://electromag1.wifeo.com/les-picaxes-et-leur-basic.php
Si non, tu la lis et on en reparle
Par ex. pour le 08M2
Dans PE6, en plaçant la souris sur les broches du dessin du µC, tu as la liste des possibilités de chaque broche pendant quelques secondes, c'est aussi dans les docs, voir P.J.
C.0 ne peut être qu'une sortie, pour le LCD, c'est ok.
C.1 peut être beaucoup de choses , C.2 aussi
Mais C.3 ne peut être qu'une entrée 0 ou 1
C.4 a 4 fonctions
C.5 sert à la programmation et peut éventuellement être une entrée 0 ou 1, comme C.3
En débutant le programme par la désignation du type de picaxe, ici "#picaxe 08M2", le vérificateur de syntaxe détecte les attributions erronées, comme DSin sur C.3, par ex.
MM
 
Bonjour Michel j'ai utilisé le vérificateur de syntaxe et c'est grâce à lui que je parviens à corriger mais pour DSIn je suis sur C3 qui est programmée comme entrée, j'ai bien vu l'affichage des fonctions de chaque pin et j'ai le schéma des picaxes avec les attributions de chaque pin , mais je vais relire pour voir ce qui m'a échappé
Bon premier mai
Patrick
 
08M2.JPG
Bonjour Michel j'ai utilisé le vérificateur de syntaxe et c'est grâce à lui que je parviens à corriger mais pour DSIn je suis sur C3 qui est programmée comme entrée, j'ai bien vu l'affichage des fonctions de chaque pin et j'ai le schéma des picaxes avec les attributions de chaque pin , mais je vais relire pour voir ce qui m'a échappé
Bon premier mai
Patrick
Bonjour,
Le DS18B20 est un composant complexe, il y a un dialogue avec le µC. Le µC envoie une demande de lecture, le DS18B20 traite cette demande et renvoie une réponse en fonction de la demande (précision, ex.). Il faut donc au moins une pin "In,Out" pour utiliser la commande readtemp. Et PE6 signale une erreur.
MM
 
Bonsoir Michel j'ai lu l'Annexe D – Configurations des Entrées/Sorties PICAXE -08/08M/08M et j'ai compris pourquoi ça ne passait pas j'avance lentement mais surement ,je vais y arriver
bonne soirée et encore merci pour ta patience avec le néophite que je suis
patrick
 
Bonsoir Michel j'ai lu l'Annexe D – Configurations des Entrées/Sorties PICAXE -08/08M/08M et j'ai compris pourquoi ça ne passait pas j'avance lentement mais surement ,je vais y arriver
bonne soirée et encore merci pour ta patience avec le néophite que je suis
patrick
Bonsoir,
Les anciens 08M ont disparus, il n'y a plus que la série M2,
Avec un projet autour d'un µC, il faut avant tout définir le nombre d'entrées et de sorties nécessaires et un "cahier des charges", en gros, les relations entre entrées et sorties.
D'après ce que je comprends en #23, il y aurait deux entrées DS18B20 (entrées I/O), une entrée potentiomètre (ADC) et deux sorties LCD (out) et recycleur (out). Avec un 08M2, il manque une entrée. On utilise pas C.5, réservée à la programmation (sauf exception).
Mais il reste l'entrée C.3 (in) et on peut remplacer le potentiomètre par un réglage en bonds de 5 °C (ou 2) par appuis sur ce poussoir entre 30 et 50°C, cyclique. Le 08M2 a donc sa chance...
MM
 
Bonjour Michel il me faut effectivement 2 entrées pour les ds 1 pour la commande 1 pour le lcd et 1 pour le potar théoriquement un 8m2 c'est bon
 
Bonjour Michel il me faut effectivement 2 entrées pour les ds 1 pour la commande 1 pour le lcd et 1 pour le potar théoriquement un 8m2 c'est bon
Bonjour,
Je ne sais pas comment tu fais, pour moi, il n'y a pas de broche dispo pour le potard, que je remplace par un poussoir sur C.3.
Ex:
#picaxe 08M2
setfreq M16
symbol LCD=C.0
symbol DSout=C.1
symbol DSin=C.2
symbol pous=pinC.3
symbol circ=pinC.4

MM
 
Cependant je peux très bien me passer de réglage en instaurant une consigne fixe a 16 degrés je revois cela ce soir
Patrick
 
Cependant je peux très bien me passer de réglage en instaurant une consigne fixe a 16 degrés je revois cela ce soir
Patrick
Oui, c'est une solution, mais si tu fixes une plage de consignes, par ex 10 à 30°C, tu peux faire varier la valeur de consigne de 10 à 30 °C par pas de 2°C (ou 1, ou 5) par ex : 10,12,14....28,30,10. etc en appuyant sur un poussoir en C.3
Je te laisse jusqu'à demain, bonne soirée...
MM
 
Bonjour Michel j'ai réussi a écrire ceci ,mais je ne comprend pas pourquoi lorsque j'arrive en fin de programme sur le simu j'ai le message soupassement de la pile ,en plus apparement les pin sont en ordre decroissant pour les reglage entrée sortie et pullup le zero a droite ,je ne trouve pas non plus comment instaurer une consigne je ne trouve pas la syntaxe correcte .
patrick
 
Bonjour,
Le problème de soupassement et surpassement de pile:
Ce message intervient avec l'utilisation de sous programmes. Le nombre de sous programmes imbriqués est limité ( je sais plus combien), Il doit y avoir un équilibre entre le nombre de gosub et le nombre de return dans l’exécution du programme. En gros, chaque qosub génère une adresse de retour utilisée par le return en fin de sous-programme. Si pendant l'exécution du programme, le nombre de gosub max est dépassé sans rencontrer de return, ou si il y a plus de return max que de gosub, il y a sous ou sur -dépassement.
En simulation, il y a une alerte, dans la réalité, le programme plante, et on se demande pourquoi.
Oui, le "poids faible" est à droite. C'est le cas général en numération. Les broches sont représentées par des octets : pinsB=%10001000 signifie que les broches B.3 et B.7 sont niveau haut, les autres en bas. C'est pareil pour pullup.
Voici un programme avec consigne modifiable. L'interruption n'était pas indispensable, mais ça donne l'occasion d'en parler et de poser des questions:
Code:
;regulation thermique sous sol
#picaxe 08M2
setfreq M16
symbol LCD=C.0
symbol DSout=C.1
symbol DSin=C.2
symbol pous=pinC.3
symbol circ=pinC.4
symbol Tout=b1
symbol Tin=b2
symbol Cin=b3
symbol baud=N2400_16
dirsC=%10001         ;C.0 et C.4 en sorties
pullup %1110        ;pullup sur C.1,C.2,C.3
setint %0,%1000    ;interruption sur C.3 niveau bas
Cin=10                ;valeur initiale de consigne
;*************************
    pause 500
    serout LCD, baud,(254,1)
    serout LCD, baud,(254,130,"in out  cin")
    serout LCD, baud,(254,192,"T",254,148,"P")
Do
    readtemp DSout,Tout
    readtemp DSin,Tin
    serout LCD, baud,(254,194,#Tout," ",254,198,#Tin," ",254,202,#Cin," ", 254,159,#circ," ")
    if Cin>Tin then
        circ=1
    else circ=0
    endif    
loop
interrupt:
    do loop while pinC.3=0        ;attente relâchement poussoir
    Cin=Cin + 5
    if Cin > 30  then
        Cin=10
    endif
    setint %0,%1000    ;interruption sur C.3 niveau bas
    return

MM
 
Merci Michel je vais lire ça et essayer de comprendre le sens des écritures, j'étais arrivée a écrire quelques lignes sans regarder mes notes c'est un début
Patrick
 
je viens de m'appercevoir que j'ai oublié le programme que j'ai fait ce matin ,j'ai mes enfants et petits enfants a la maison et je suis sans cesse solicité et comme cela je fait des bétises
;regulation thermique sous sol
#picaxe 08M2
setfreq M16
symbol LCD=C.0
symbol DSout=C.1
symbol DSin=C.2
symbol pous=pinC.3
symbol open=pinC.4
symbol Tout=outpinC.2
symbol Tin=outpinC.5
symbol consigne=C.3
symbol Cin=C.4
symbol varb=C.3
symbol unit=C.3
symbol diz=C.1
symbol baud=N2400_16
dirsC=%110001
pullup %011110
;*************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"in out")
serout LCD, baud,(254,148,"C",254,192,"T",254,212,"P")
readtemp Dsout,Tout
readtemp DSin,Tin
serout LCD, baud,(254,194,#Tout," ",254,198,#Tin)
pause 200

;*******************************
;consigne;
serout lcd,baud, (254,153," ",254,157,">",#cin," ")
;******************************
gesopen:
if Tin>consigne and Tout < Tin then
open=1
else open=0
endif
if Tin<consigne and Tout>Tin then
open=1
else open=0
endif
return
 
Ben oui, cà marche pas,....c'est normal
Un programme est obligatoirement une bouche, sinon, il s'arrête.
Le return est le retour d'un sousprogramme. Il y a un return, mais pas de gosub.
Remplace le "return" par un "goto gesopen" et le programme "tournera"
Je crois que tu n'as pas lu cette page : http://electromag1.wifeo.com/les-picaxes-et-leur-basic.php
Il faut indenter (placer des retraits de lignes) le programme, c'est plus lisible
On peut tout nommer, mais ne pas mélanger les noms de broches et le noms de variables
Les broches: C.0, C.1,...
Les variables byte (un octet) b0, b1, b2...
Les variables word (2 octets) w13, w12, w11,

Les enfants et petits enfants, c'est plus important que le reste...
MM
 
Last edited:
Bonsoir Michel effectivement je n'avais pas tout lu mais pour les dirs et pullup j'ai trouvé par moi meme que le poids faible est a droite et on retient bien mieux ce que l'on as trouvé que ce que l'on a lu j'ai modifié mon programme avec ce que tu m'as fait passer , au simu ça tourne comme je le souhaite , consigne 16 si T interieure > 16 et T exterieure <T interieure alors C.4 =1 si T interieure<16 et T exterieure>Tinterieure alors C.4 =1 C.4 commande un relais 2RT qui commande l'ouverture d'une aeration en position travail et la fermeture en position repos, les enfants étaient venu m'aider pour remonter la piscine gros chantier il ne reste plus que des finitions
;regulation thermique sous sol
#picaxe 08M2
setfreq M16
symbol LCD=C.0
symbol DSout=C.1
symbol DSin=C.2
symbol pous=pinC.3
symbol open=pinC.4
symbol Tout=b1
symbol Tin=b2
symbol Cin=b3
symbol baud=N2400_16
dirsC=%10001
pullup %1110
setint%0,%1000
Cin=16
;*************************
pause 500
serout LCD, baud,(254,1)
serout LCD, baud,(254,130,"in out Cin")
serout LCD, baud,(254,192,"T",254,148,"P")
do
readtemp Dsout,Tout
readtemp DSin,Tin
serout LCD, baud,(254,194,#Tout," ",254,198,#Tin,"",254,202,#Cin,"",254,159,#open,"")
if Tin>Cin and Tout<Tin then
open=1
else open=0
endif
if Tin<Cin and Tout>Tin then
open=1
else open=0
endif
loop
interrupt:
do loop while pinC.3=0
Cin=Cin+5
if Cin>30 then
Cin=16
endif
setint%0,%1000
return
 
Si ça fonctionne comme tu veux, c'est parfait, bravo.
30 -16 = 14 avec une incrémentation de 2 au lieu de 5, on fait le tour en 7 appuis poussoir, c'est pas la mort et c'est plus précis.
MM
 
Back
Top