besoin d'aide programmation C atmega16

pour tous les topics qui ne concernent pas les laser

Moderatoren: dj_richu, Moderator (French Zone)

Antworten
Benutzeravatar
dj_richu
Beiträge: 2288
Registriert: So 30 Apr, 2006 11:01 am
Do you already have Laser-Equipment?: 1,2W RGB dpss/diodes + terascan
Pangolin PRO - LD2000 - Showtime
Live!Pro
QuickShow
Wohnort: Paris

besoin d'aide programmation C atmega16

Beitrag von dj_richu » Mi 11 Mär, 2009 3:41 pm

Hello,

a tous ceux ayant des notions de C et surtout qui connaissent l'uc atmega16 de chez atmel, j ai besoin de votre aide a tout prix!!

je dois réaliser la chose suivante:

1 capteur de temperature (schematisé par une tension variable), qui sera branché sur le port ADC0 du microcontroleur.

Port B: 8 led qui s allumeront progressivement en fonction de la température (en fonction de la tension en ADC0).

J ai absolument besoin d aide au plus vite... c est pour un projet noté...
Merci à tous ceux qui pourront m aider! :D
Gentil modérateur à mes heures perdues

Benutzeravatar
shrad
Beiträge: 4009
Registriert: Mi 28 Feb, 2007 12:59 pm
Do you already have Laser-Equipment?: http://www.rp-photonics.com/topics.html
Wohnort: Tournai, Belgium

Beitrag von shrad » Mi 11 Mär, 2009 5:27 pm

pas eu l'occasion de te le dire sur msn ^^

http://microcontrollershop.com/product_ ... cts_id=185

pour le compilateur C (surement livre avec les librairies)

et

http://microcontrollershop.com/product_ ... cts_id=352

pour le compilateur basic, surement avec les librairies aussi

et il doit y avoir plein de tutos

ces compilateurs sont limites a 4Ko de code apres expiration de la demo ce qui reste largement suffisant

basiquement, il suffit de regler les parametres du convertisseur A/D (reference de tension interne, etc..) en debut de programme (ainsi que parametrer l'horloge ou autres si necessaire), puis de faire une boucle infinie qui lache la valeur mesuree sur le portB

Code: Alles auswählen


while(1)
{
    PortB = ADC0value;
}

avec peut etre besoin d'une fonction genre "waitforADC()" avant de sortir la valeur

ca va sans dire que c'est le principe et que je ne connais pas les arcanes des atmel, mais ca devrait etre valable :)

Benutzeravatar
biduleohm
Beiträge: 703
Registriert: Sa 31 Mär, 2007 10:28 pm
Do you already have Laser-Equipment?: DPSS 532nm
Wohnort: Fontenay-Trésigny 77
Kontaktdaten:

Beitrag von biduleohm » Mi 11 Mär, 2009 5:30 pm

je pense à une boucle qui prend la valeur de la T° avec 8 conditions qui allument chacune une led de plus :roll:

Par ex:

Code: Alles auswählen

while(1)
{

   prend la valeur sur le port a;

   if(10 < T && T < 15)
   {
       envoi telle valeur sur le port b
   }

   if(.....)
   {
       .....
   }

   ......

}

edit: grilled :lol:
Mon site Mon forum Congratulations !!! You've just created a temporal loophole...

Benutzeravatar
shrad
Beiträge: 4009
Registriert: Mi 28 Feb, 2007 12:59 pm
Do you already have Laser-Equipment?: http://www.rp-photonics.com/topics.html
Wohnort: Tournai, Belgium

Beitrag von shrad » Mi 11 Mär, 2009 5:40 pm

si on a un LM35 par exemple qui donne 10mV par °C et que dans sa datasheet il a disons 0mV pour 0°C, il suffit de soustraire ton minimum a la valeur mesuree, pour que la valeur binaire minimum du portB soit de 00000000

apres, choisir un coefficient multiplicateur pour que ta valeur max soit a 255, c-a-d 11111111 sur le portB

Antworten

Zurück zu „Hors sujets“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste