Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier. Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer. Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens). Les pages seront ajoutées ou modifiées petit à petit. Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater. Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr . Tout message reçoit une réponse Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche Pour laisser un message, allez dans le "LIVRE D'OR" Bonne visite
Le code: 'Mesure de température et humidité ;MM 04/12/25 Anubis1985 22-11-2025 ;SH1106 et GY-21 #picaxe 08M2 setfreq M32 symbol X = b1 Symbol NumASCII = b2 Symbol LongeurNumASCII = b3 Symbol Contraste = b4 Symbol OffsetY = b5 Symbol ColumHighBits = b7 Symbol ColumLowBits = b8 Symbol LongeurRF = b9 Symbol Page = b10 symbol sign = b11 ;signe tempé symbol mil = b12 symbol cen = b13 symbol unit = b14 symbol decim = b15 symbol centi = b16 ;w13 lecture GY-21 symbol tempe =w12 ;température symbol HR =w11 ;humidité relative 'Commandes du controleur SH1106 Symbol SETCONTRAST =0x81 Symbol DISPLAYALLON_RESUME =0xA4 Symbol DISPLAYALLON =0xA5 Symbol DISPLAYOFF =0xAE Symbol DISPLAYON =0xAF Symbol SETDISPLAYOFFSET =0xD3 Symbol SETLOWCOLUMN =0x00 Symbol SetColumHighBits = 0x10 Symbol SETSTARTLINE =0x40 Symbol CHARGEPUMP =0x8D Symbol pageEndAddr = 7 ColumLowBits = 0 ColumHighBits = 0 pause 800 '50ms a 32mhz hi2csetup i2cmaster, $78,i2cfast_32, I2cbyte gosub ClearDisplay contraste=255 : gosub ContrasteMode x = 20: gosub SetPosition ;2 = position colonne for LongeurNumASCII=0 to 11 lookup LongeurNumASCII,(2,"T = °C"), NumASCII ;2= n° de ligne gosub Numero next x = 20: gosub SetPosition for LongeurNumASCII=0 to 10 lookup LongeurNumASCII,(4,"HR= %"), NumASCII gosub Numero next do pause 2000 gosub lecGY21 hi2csetup i2cmaster, $78,i2cfast_32, I2cbyte x = 40: gosub SetPosition ; 40 = position colonne bintoascii tempe,mil,cen,unit,decim,centi for LongeurNumASCII=0 to 5 lookup LongeurNumASCII,(2,sign,cen,unit,",",decim), NumASCII if bit0=1 and LongeurNumASCII>0 then NumASCII="-" endif gosub Numero next bintoascii HR,mil,cen,unit,decim,centi x = 40: gosub SetPosition for LongeurNumASCII=0 to 5 lookup LongeurNumASCII,(4," ",cen,unit,",",decim), NumASCII if bit0=1 and LongeurNumASCII>0 then NumASCII="-" endif gosub Numero next loop
lecGY21: bit0=0 hi2csetup i2cmaster,$80,i2cfast_32,i2cbyte hi2cout ($E3) ;température hi2cin (b27,b26) ;(b27,b26) c'est w13 sign=" " ;pas de signe, à priori if w13>65500 then: bit0=1:endif tempe=w13**17575-4685 ;valeur mémorisée dans tempe if w13<=17473 then ;on est dans les valeurs négatives tempe=-tempe ;idem complément à 2 sign="-" endif serout C.4,T9600_32,(254,1,254,128,#w13) hi2cout ($E5) ;humidité hi2cin (b27,b26) HR=w13**12500-600 ;valeur mémorisée dans H serout C.4,T9600_32,(254,192,#w13," ",#bit0) return
ClearDisplay: gosub DISPLAY_OFF for NumASCII = 0 to 7 gosub Numero gosub ClearPage next gosub DISPLAY_ON return
ClearPage: for LongeurRF = 0 to 131 hi2cout (SETSTARTLINE,0x00) next LongeurRF = 0 return
SetPosition: if X > 131 then : X = 131 endif select case X case 0 to 15 : ColumLowBits = X : ColumHighBits = 0 case 16 to 31 : ColumLowBits = X - 16 : ColumHighBits = 1 case 32 to 47 : ColumLowBits = X - 32 : ColumHighBits = 2 case 48 to 63 : ColumLowBits = X - 48 : ColumHighBits = 3 case 64 to 79 : ColumLowBits = X - 64 : ColumHighBits = 4 case 80 to 95 : ColumLowBits = X - 80 : ColumHighBits = 5 case 96 to 111 : ColumLowBits = X - 96 : ColumHighBits = 6 case 112 to 127 : ColumLowBits = X - 112 : ColumHighBits = 7 case 128 to 131 : ColumLowBits = X - 128 : ColumHighBits = 8 endselect ColumHighBits = SetColumHighBits + ColumHighBits hi2cout (0, ColumHighBits) hi2cout (0, ColumLowBits) return