Discussion:Binome2020-8 : Différence entre versions
De Wiki de bureau d'études PeiP
Ligne 18 : | Ligne 18 : | ||
https://www.mouser.fr/Sensors/Temperature-Sensors/Board-Mount-Temperature-Sensors/_/N-7gz7qZ1yzvvqxZscv7?P=1yof1wlZ1z0jh8gZ1z0jilpZ1z0y176&Ns=Pricing|0 | https://www.mouser.fr/Sensors/Temperature-Sensors/Board-Mount-Temperature-Sensors/_/N-7gz7qZ1yzvvqxZscv7?P=1yof1wlZ1z0jh8gZ1z0jilpZ1z0y176&Ns=Pricing|0 | ||
− | = | + | == Programme == |
− | #define BROCHE_TEMP A2 | + | #define BROCHE_TEMP A2 |
− | #define ATTENTE_COMPTEUR 1000 | + | #define ATTENTE_COMPTEUR 1000 |
− | #define NB_SEGMENTS 7 | + | #define NB_SEGMENTS 7 |
− | #define NB_AFFICHEURS 3 | + | #define NB_AFFICHEURS 3 |
− | + | ||
− | //#define COMPTEUR | + | //#define COMPTEUR |
− | #define TEMPERATURE | + | #define TEMPERATURE |
− | + | ||
− | const int segments[NB_SEGMENTS]={7,6,3,4,5,1,0}; | + | const int segments[NB_SEGMENTS]={7,6,3,4,5,1,0}; |
− | const int afficheurs[NB_AFFICHEURS]={10,9,8}; | + | const int afficheurs[NB_AFFICHEURS]={10,9,8}; |
− | + | ||
− | + | void effacer(void){ | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | void | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | void | ||
− | |||
int i; | int i; | ||
− | for(i=0;i<NB_SEGMENTS;i++) | + | for(i=0;i<NB_SEGMENTS;i++) |
− | |||
digitalWrite(segments[i],HIGH); | digitalWrite(segments[i],HIGH); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | ||
− | #define NB_CHIFFRES 3 | + | int zero[]={0,1,2,3,4,5,-1}; |
− | int compteur[NB_CHIFFRES]={0,0,0}; | + | int un[]={1,2,-1}; |
− | long ms=0; | + | int deux[]={0,1,3,4,6,-1}; |
− | + | int trois[]={0,1,2,3,6,-1}; | |
− | void loop() { | + | int quatre[]={1,2,5,6,-1}; |
− | + | int cing[]={0,2,3,5,6,-1}; | |
− | + | int six[]={0,2,3,4,5,6,-1}; | |
− | + | int sept[]={0,1,2,-1}; | |
− | + | int huit[]={0,1,2,3,4,5,6,-1}; | |
− | + | int neuf[]={0,1,2,3,5,6,-1}; | |
− | + | ||
− | + | int *chiffres[]={zero,un,deux,trois,quatre,cing,six,sept,huit,neuf}; | |
− | + | ||
− | + | void afficher(int c){ | |
− | + | if(c<0 || c>9) return; | |
− | #ifdef TEMPERATURE | + | int i=0; |
− | + | while(chiffres[c][i]>=0){ | |
− | + | digitalWrite(segments[chiffres[c][i]],LOW); | |
− | + | i++; | |
− | + | } | |
− | + | } | |
− | + | ||
− | #endif | + | void setup() { |
− | #ifdef COMPTEUR | + | // put your setup code here, to run once: |
− | + | int i; | |
− | + | for(i=0;i<NB_SEGMENTS;i++){ | |
− | + | pinMode(segments[i],OUTPUT); | |
− | + | digitalWrite(segments[i],HIGH); | |
− | #endif | + | } |
− | } | + | for(i=0;i<NB_AFFICHEURS;i++){ |
+ | pinMode(afficheurs[i],OUTPUT); | ||
+ | digitalWrite(afficheurs[i],HIGH); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | #define NB_CHIFFRES 3 | ||
+ | int compteur[NB_CHIFFRES]={0,0,0}; | ||
+ | long ms=0; | ||
+ | |||
+ | void loop() { | ||
+ | int i; | ||
+ | for(i=0;i<NB_AFFICHEURS;i++){ | ||
+ | digitalWrite(afficheurs[i],LOW); | ||
+ | afficher(compteur[i]); | ||
+ | delay(1); | ||
+ | digitalWrite(afficheurs[i],HIGH); | ||
+ | effacer(); | ||
+ | } | ||
+ | if(millis()-ms<ATTENTE_COMPTEUR) return; | ||
+ | ms=millis(); | ||
+ | #ifdef TEMPERATURE | ||
+ | int adc=analogRead(BROCHE_TEMP); | ||
+ | float volts=adc* 3.3/1024.0; | ||
+ | float temp=(volts-0.5)*100; | ||
+ | compteur[2]=((int)temp)/10; | ||
+ | compteur[1]=((int)temp)%10; | ||
+ | compteur[0]=((int)temp*10)%10; | ||
+ | #endif | ||
+ | #ifdef COMPTEUR | ||
+ | for(i=NB_CHIFFRES-1;i>=0;i--){ | ||
+ | if(compteur[i]<9){ compteur[i]++; break; } | ||
+ | else compteur[i]=0; | ||
+ | } | ||
+ | #endif | ||
+ | } |
Version du 27 mars 2021 à 19:38
Commentaires sur votre BE
Wiki
Voilà, ça c'est une page Wiki rédigée !
Il manque les images de votre schéma et de votre circuit imprimé et les photos de votre PCB soudé.
Ce sera très bien une fois complété.
Travail
La première carte est conçue, réalisée et soudée. Le Wiki laisse une incertitude sur le fait que vous ayez ou non réussi à programmer la carte. Si je me souviens bien vous arrivez à programmer l'ATTiny84 et vous essayez de récupérer la température ?
Capteur de température à utiliser https://www.mouser.fr/Sensors/Temperature-Sensors/Board-Mount-Temperature-Sensors/_/N-7gz7qZ1yzvvqxZscv7?P=1yof1wlZ1z0jh8gZ1z0jilpZ1z0y176&Ns=Pricing%7C0
Programme
#define BROCHE_TEMP A2 #define ATTENTE_COMPTEUR 1000 #define NB_SEGMENTS 7 #define NB_AFFICHEURS 3 //#define COMPTEUR #define TEMPERATURE const int segments[NB_SEGMENTS]={7,6,3,4,5,1,0}; const int afficheurs[NB_AFFICHEURS]={10,9,8}; void effacer(void){ int i; for(i=0;i<NB_SEGMENTS;i++) digitalWrite(segments[i],HIGH); } int zero[]={0,1,2,3,4,5,-1}; int un[]={1,2,-1}; int deux[]={0,1,3,4,6,-1}; int trois[]={0,1,2,3,6,-1}; int quatre[]={1,2,5,6,-1}; int cing[]={0,2,3,5,6,-1}; int six[]={0,2,3,4,5,6,-1}; int sept[]={0,1,2,-1}; int huit[]={0,1,2,3,4,5,6,-1}; int neuf[]={0,1,2,3,5,6,-1}; int *chiffres[]={zero,un,deux,trois,quatre,cing,six,sept,huit,neuf}; void afficher(int c){ if(c<0 || c>9) return; int i=0; while(chiffres[c][i]>=0){ digitalWrite(segments[chiffres[c][i]],LOW); i++; } } void setup() { // put your setup code here, to run once: int i; for(i=0;i<NB_SEGMENTS;i++){ pinMode(segments[i],OUTPUT); digitalWrite(segments[i],HIGH); } for(i=0;i<NB_AFFICHEURS;i++){ pinMode(afficheurs[i],OUTPUT); digitalWrite(afficheurs[i],HIGH); } } #define NB_CHIFFRES 3 int compteur[NB_CHIFFRES]={0,0,0}; long ms=0; void loop() { int i; for(i=0;i<NB_AFFICHEURS;i++){ digitalWrite(afficheurs[i],LOW); afficher(compteur[i]); delay(1); digitalWrite(afficheurs[i],HIGH); effacer(); } if(millis()-ms<ATTENTE_COMPTEUR) return; ms=millis(); #ifdef TEMPERATURE int adc=analogRead(BROCHE_TEMP); float volts=adc* 3.3/1024.0; float temp=(volts-0.5)*100; compteur[2]=((int)temp)/10; compteur[1]=((int)temp)%10; compteur[0]=((int)temp*10)%10; #endif #ifdef COMPTEUR for(i=NB_CHIFFRES-1;i>=0;i--){ if(compteur[i]<9){ compteur[i]++; break; } else compteur[i]=0; } #endif }