refus de démarrage d'un atmega328p, branché à une alimentation d'ordinateur,

Salut,

Concernant les if en cascade , la syntaxe n'est pas la bonne, c'est :

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

Voila, si tu fais comme cela , ça doit être ok pour les tests.

Bon alors, si c'est vraiment un BD139 que tu utilises, R1 vers la masse ne sert absolument à rien par contre il serait bon de mettre une résistance en série avec la base sinon tu vas griller la jonction base-émetteur (ou la sortie de l'ATmega).

Noctus70:
Sinon j'ai essayé d'alimenter l'atmega avec cette alimentation, sur breadboard, et ça fonctionne... mais pas sur le circuit soudé! le +5v pour l'atmega est le même que pour les potentiomètres, j'utilise l'unique cable en 5v de la prise molex

Si sur breadboard ça marche depuis l'alim molex et pas sur la plaque soudé c'est qu'il doit y avoir une erreur dessus =/

Le meilleur conseil serait de refaire un schéma de ton montage bien propre et ensuite de vérifier que tu à bien tout relié.

68tjs:
Cela permet de faire et refaire ses soudures sans craindre d'abimer le boîtier du microcontrôleur et cela permet aussi de le récupérer pour un autre usage.

Si le schéma est bon et si le câblage est correct le microcontrôleur se programmera sans difficulté avec un programmeur ISP ou une interface USB/UART sans avoir à être déplacé.

Oui mais ça inclus d'avoir à installer encore d'autre éléments sur la plaque non ?

Tu peux t'inspirer du schéma de la carte UNO, il est public.
C'est un peu plus délicat pour un débutant mais tu peux aussi t'inspirer des indications de la datasheet du micro.

Pour la résistance dans la base du transistor bipolaire je ne peux que surenchérir sur ce que t'a déjà dis fdufnews. Ma surenchère est de te conseiller de lire le tuto sur les transistors dans "tutoriels et cours"
https://forum.arduino.cc/index.php?topic=100727.0

Autre point si tu utilises la fonction mesure analogique et si tu veux des mesures propres il faut ajouter un condensateur (100 nF suffisent) DIRECTEMENT au dos du support du micro entre les deux broches voisines Aref et Gnd.
Si Atmel a placé une pin Gnd juste à coté de la pin Aref du micro ce n'est pas par hasard.

Je ne connais pas tes buts finaux mais si c'est pour disposer d'une carte moins chère et plus petite tu ne trouvera rien de mieux qu'une carte Nano fabriquée en grande série avec des composants aux prix de grandes série (Carte rendue dans la boîte à lettre entre 3 et 5€).
Au choix : Ebay, Price-minister(France), Amazon, etc.............

68tjs:
Autre point si tu utilises la fonction mesure analogique et si tu veux des mesures propres il faut ajouter un condensateur (100 nF suffisent) DIRECTEMENT au dos du support du micro entre les deux broches voisines Aref et Gnd.
Si Atmel a placé une pin Gnd juste à coté de la pin Aref du micro ce n'est pas par hasard.

Je ne connais pas tes buts finaux mais si c'est pour disposer d'une carte moins chère et plus petite tu ne trouvera rien de mieux qu'une carte Nano fabriquée en grande série avec des composants aux prix de grandes série (Carte rendue dans la boîte à lettre entre 3 et 5€).
Au choix : Ebay, Price-minister(France), Amazon, etc.............

Merci pour ta réponse, elle est enrichissante...
Pour le condo, je branche juste le grnd sur l'aref avec le condo ou il faut autre chose?
Sinon, je cherche a n'utiliser qu'un atmega par apprentissage, je cherche à comprendre, pour ensuite utiliser d'autres microcontrôleurs. Mais si je n'y arrive pas pour l'atmega328, je ne suis pas arrivé au bout ^^'

hameau:
Salut,

Concernant les if en cascade , la syntaxe n'est pas la bonne, c'est :

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

Voila, si tu fais comme cela , ça doit être ok pour les tests.

Merci, je vais modifier le code!

fdufnews:
Bon alors, si c'est vraiment un BD139 que tu utilises, R1 vers la masse ne sert absolument à rien par contre il serait bon de mettre une résistance en série avec la base sinon tu vas griller la jonction base-émetteur (ou la sortie de l'ATmega).

Mon Atmega n'a pas cramé, tu pense que c'est ce qui le fesait chauffer? une de 220 suffit?

Merci pour vos réponses!

Pour le condo, je branche juste le grnd sur l'aref avec le condo ou il faut autre chose?

euh pas bien compris ......
Tu soude une patte du condo sur Gnd et l'autre sur Aref.
L'espacement entre les pinuches du support est au pas de 2,54 mm, il y a assez de place pour y loger le condo avec des pattes COURTES.

ok, c'est bon, et effectivement maintenant ça marche! Pour une simple led, mais j'ai bon espoir pour la suite. Merci pour toute votre aide!

ah, j'ai un dernier problème:
quand je branche deux ventilateurs ou plus, et que je ne fait varier qu'une sortie analogique, les autres déconnectées, les deux ventilateurs réagissent pareil, au lieu d'être indépendants... Le code et le montage sont les mêmes...
J'ai testé avec du 5v, puis avec 3.3 et 5v sur des pin analogiques différents: il font tous comme si il y avait du 5v, mais il y a du 3.3 et 5v!
Je suis perdu sur le coup.. J'ai tout vérifié pourtant

Et là je viens de faire cramer un potentiomètre, branché sur le +5v de l'alimentation, et sur un pin de l'atmega. Le branchement est le bon et vérifié, c'est juste un potentiomètre 10kohm qui a cramé sans raison... si vous avez une idée... patte 1: +5v, patte2 atmega(pin analogique) patte 3: gnd

Merci :wink:

Cramé cela veut dire quoi ?
Qu'est ce que tu as fais ?
Qu'est ce que tu constate ?

Parce que cramer un potar de 10k sur le 5V je ne sais pas faire.
Puissance dans le potar : P = U2/R = (5*5)/ 10000 = 2,5 milli watt !

alors, cramé, pour moi c'est quand je le fais varier et que soudain il fume beaucoup, et qu'une magnifique odeur de cramé s'élève. Je ne l'ai donc juste fait varier. Je constate que ce n'est pas normal (lol), et que les branchements sont bien faits pourtant! pin de gauche:5v du milieu: Atmega de droite: gnd....

Bon, comme c'est le seul qui dysfonctionne, j'imagine que si je le change ce sera bon...
Mais il reste le problème d'indépendance des prises analogiques.. si quelqu'un a une solution .. :slight_smile:
J'ai changé plusieurs fois l'ordre des lignes du code, pas de changement, ainsi que le nom des variables, aucun changement, les ventilateurs ne varient pas indépendamment... tous ensemble!

Salut,

Si dans le code tu imposes la valeur de la PWM pour faire les tests de dépendance de vitesses, genre :

analogWrite(3, 100);
analogWrite(5, 150);
analogWrite(6, 200);
analogWrite(9, 255)

Et voir si cela fonctionne, les ventilateurs consomment combien de mA ??, ils sont bien tous piloté par un transistor chacun.

hameau:
Salut,

Si dans le code tu imposes la valeur de la PWM pour faire les tests de dépendance de vitesses, genre :

analogWrite(3, 100);

analogWrite(5, 150);
analogWrite(6, 200);
analogWrite(9, 255)




Et voir si cela fonctionne, les ventilateurs consomment combien de mA ??, ils sont bien tous piloté par un transistor chacun.

oui cela fonctionne... Les ventilateurs, ça dépend, oui tous par le même jeu de transistor (un jeu chacun, qui comporte un transistor, une res et un condo), sinon genre 0,16A à 0.5A.

Re,

Je comprend pas la formule :

Val1Analog = Val1 / 51.15 + 4;

La valeur numérique sortant du CAN varie de 0--> 1023 , la valeur de variation en PWM est de 0 --> 254, donc le plus simple pour passer de 1023 à 254 est de diviser par 4
Val_PWM= Val_Analog / 4
sinon passer par la fonction map
Val_PWM=map(Val_Analog,0,1024,0,254)

Par contre les ventilateur demande un mini de tension pour se mettre en rotation, donc pas la peine de descendre la valeur pwm sous un certain seuil à déterminer.

La tension d'alimentation des ventilos est de 12 V, avec un valeur PWM de 26 au maxi cela fait une tension d'alimentation de ceux-ci de (26/254)*12 = 1.3 V, je ne vois pas comment il peuvent se mettre en rotation.

hameau:
Re,

Je comprend pas la formule :

Val1Analog = Val1 / 51.15 + 4;

La valeur numérique sortant du CAN varie de 0--> 1023 , la valeur de variation en PWM est de 0 --> 254, donc le plus simple pour passer de 1023 à 254 est de diviser par 4
Val_PWM= Val_Analog / 4
sinon passer par la fonction map
Val_PWM=map(Val_Analog,0,1024,0,254)

Par contre les ventilateur demande un mini de tension pour se mettre en rotation, donc pas la peine de descendre la valeur pwm sous un certain seuil à déterminer.

La tension d'alimentation des ventilos est de 12 V, avec un valeur PWM de 26 au maxi cela fait une tension d'alimentation de ceux-ci de (26/254)*12 = 1.3 V, je ne vois pas comment il peuvent se mettre en rotation.

Bonjour,
et bien, les transistors sont sur le fil 'grnd' du ventilo, et la réaction des transistors et différente que sur le fil 12v du même ventilo. Ainsi, si je divise juste par 4, mon ventilo va juste passer de éteint à à fond... c'est entre 0 et 26 PWM que la variation de vitesse du ventilateur sera possible...(avec un max de 11v) d'ou le calcul tordu effectué. sinon les if sont la pour couper les ventilos quand le potard est au minimum :slight_smile:

Salut,

Je comprend mieux le calcul, par contre pourquoi passer par un arduino pour avoir un fonctionnement en Tout ou Rien, car c'est bien le cas, les ventilos seront à l'arrêt ou à vitesses Maxi c’est bien ça ?

@+

Non, en fonction du PWM entre 0 et 26, la valeur en sortie sera différente et c'est le but... elle pourras varir entre 0 et 12v théoriquement :slight_smile: une caractéristique du trans je pense... le PWM entre 0 et 26 je veux dire

à+

Personne n'a une idée ??? :frowning:

Tout ça est un peu embrouillé.
Le processeur qui chauffe pour rien
Le potar qui fume pour rien
Ou bien tu as appris à câbler avec le Colonel Blanchet

ou bien tu ne sais pas compter.
Tu pourrais nous faire un schéma complet de l'ensemble et mettre les docs de tes ventilateurs pour que l'on comprenne?
Es-tu certain que ton alimentation de PC te fournit bien 5V dans tous les cas?
Et quelle confiance peut-on avoir dans un processeur qui a chauffé? Sachant qu'un ATmega, qui ne consomme que quelques dizaines de milliampères, ne devrait jamais chauffer (du moins lorsqu'on l'utilise à température ambiante).