besoin d'aide programmation C atmega16

pour tous les topics qui ne concernent pas les laser

Moderators: dj_richu, Moderator (French Zone)

Post Reply
User avatar
dj_richu
Posts: 2288
Joined: Sun 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
Location: Paris

besoin d'aide programmation C atmega16

Post by dj_richu » Wed 11 Mar, 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

User avatar
shrad
Posts: 4009
Joined: Wed 28 Feb, 2007 12:59 pm
Do you already have Laser-Equipment?: http://www.rp-photonics.com/topics.html
Location: Tournai, Belgium

Post by shrad » Wed 11 Mar, 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: Select all


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 :)

User avatar
biduleohm
Posts: 703
Joined: Sat 31 Mar, 2007 10:28 pm
Do you already have Laser-Equipment?: DPSS 532nm
Location: Fontenay-Trésigny 77
Contact:

Post by biduleohm » Wed 11 Mar, 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: Select all

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...

User avatar
shrad
Posts: 4009
Joined: Wed 28 Feb, 2007 12:59 pm
Do you already have Laser-Equipment?: http://www.rp-photonics.com/topics.html
Location: Tournai, Belgium

Post by shrad » Wed 11 Mar, 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

Post Reply

Return to “Hors sujets”

Who is online

Users browsing this forum: No registered users and 3 guests