lm 7805 pour cube led

magmasanne
jeu, 08/08/2019 - 22:20
Bonjour; puis je utiliser un lm 7805 pour alimenter en 5 volt un cube de led 8x8x8 que j'ai monté. aurais je assez d'Ampère?
J'ai lu qu'il fallait 4 Ampère, comment dois je calculer? 512 led x 0.02A?
d'après le datasheet c'est 1.5A donc c'est pas bon, que puis mettre à la place pour transformer les 12 volts de mon alimentation?
Merci
Walter
ven, 08/16/2019 - 11:59
Effectivement difficile de te répondre précisément sans connaître ton schéma et la façon dont tu pilote tes LEDs, surtout qu'il y a pas mal de composant pour le faire.
Pour une matrice 8x8, j'utilise des registres à décalage (74HCT595N) qui normalement si j'ai bien compris ne devrait pas supporter plus de 75mA au total, mais qui supporte bien les 8*20mA lorsque toutes les LEDs sont allumés sur mes tests, en tout cas je ne me rappel pas avoir utilisé de transistor, il faudrait que je vérifie, mais j'ai pas testé sur de long temps en tout cas.
Beaucoup d'exemple sur le net de cube semble utiliser un 74HC138.
En tout cas, si tu mène ton projet à bout, n'hésite pas a faire un post dans la section "Projets réalisés"
magmasanne
dim, 08/18/2019 - 22:08
Bonjour, désolé de ne pas avoir répondu plus tôt, j'ai eu des soucis de connection google et internet, impossible de télécharger un fichier. J'ai fini ce cube de led, j'irai le mettre dans projet réalisé dès que j'ai un moment. Je me bas avec le klaxon de mon sprinter, je dois trouver la panne. je joint le fichier doc du schéma électrique du câblage et aussi un lien vers la video. je n'ai pas tout à fait fini, j'ai deux ligne qui ne s'allume pas, je pense avoir un mauvais contact dans deux registres 74 hc 595. à ce projet j'ai juste ajouté la télécommande avec un superhétérodyne 433 mHz plus un bc 547. le reste à été empreinté sur you tube.. Je pense pouvoir mettre un LM7805 d'après ce que vous dites? je vais tenter de faire un cube 8x8x8 rgb, c'est autre chose au niveau des cartes, il y en a bcq et 25 registres. L'électronique, c'est un rêve de gosse que je réalise grace à internet et aux composant pas cher et facilement accéssible, ainsi que les tutos. voici la video: https://drive.google.com/open?id=11HTFsPHTHK-D8GIVuBKv6VdGEPOm6vbG
Walter
dim, 08/18/2019 - 22:29
Bravos, très belle réalisation, pour la programmation des animations tu as fait du code spécifiques ?
magmasanne
lun, 08/19/2019 - 08:56
Bonjour; j'ai utilisé un code arduino trouvé sur github, depuis you tube sur les tutos d' electronic demon ou harry le ou encore alex gyver great scott fait des trucs pas mal aussi, un led cube 5x5x5 avec des led rgb 2 pins.
magmasanne
lun, 08/19/2019 - 21:23
dsl ,j'ai fait une erreur, il m'avait semblé qu'il utilisait des leds rgb 2 pins mais non, 4 pins. j'ai visionné vite fait et j'avais cru voir deux connections sous le socle.
Walter
mar, 08/20/2019 - 10:39
A priori il utilise des LED 4 broches, mais pilotable avec une seul broche (DIN), chaînable via la broche D0, les deux autres du milieu étant l'alimentation.
Pourrais faire une évolution sympa de ton projet.
magmasanne
mar, 08/20/2019 - 12:58
quelle évolution? du programme arduino? c'est sur que plus de figure serait sympa mais je ne sais pas ecrire les programmes, je vais apprendre mais le temps me manque pour l'instant Si il y avait des cours du soir d'informatique et de programmation, j'en prendrai volontiers, c'est plus rapide que d'apprendre seul connais tu un livre bien expliqué pour l 'arduino? J'ai commencé à apprendre sur" zeste de savoir" mais j'ai remis à plus tard je n'ai que le dimanche pour faire de l'electronique, le soir je fais des devis ou je suis trop fatigué
Walter
mar, 08/20/2019 - 15:00
Je voulais dire passer en LED RGB serait une belle évolution.
Non je n'ai pas eu l'occasion de voir de livre d'initiation à programmation d'arduino.
Je trouve que sur ce site https://www.locoduino.org/ les articles sont très pertinents.
Pour moi plus qu'un livre pour apprendre, le mieux est la pratique sur des projets simples.
Par exemple piloter 5 LEDs via 5 broches de l'arduino(puis utiliser une seul broche) et gérer l'animation soit même est un exercice tout à fait formateur, qui t'apprend les variables, les instructions conditionnelles et les boucles, ....
Faire un robot mobile avec un capteur à ultrason est aussi très instructifs
Après n'hésite pas à demander de l'aide si tu bloque sur des notions.
magmasanne
mar, 08/20/2019 - 22:12
Oui, j'ai déjà acheté tt les composant pour la voiture robot, je vais le faire un de ces jours mais je vais faire le cube rgb 8x avant. mon premier projet était de faire fonctionner un esp 8266, j'ai galéré 2 mois, l'arduino méttait un temps fou à télécharger le programme et je n'attendais pas car je pensais qu'il y avait un problème. je suis parti un jour en laissant le telechargement se faire et en revenant ça fonctionnait. Ce'st bête!
Walter
mar, 08/20/2019 - 23:11
Tu as dû configurer la vitesse du port séries à 9600, normalement je crois que tu peux mettre une vitesse plus rapide.
Si tu veux jouer avec des esp8266 prend quelque chose comme ça https://fr.aliexpress.com/item/32656775273.html?spm=a2g0o.cart.0.0.457d3c00UaAEUv&mp=1
Comme ça tu ne passe pas par ton arduino.
Tu peux même prendre un esp32 si le bluetooth t'intéresse.
magmasanne
mer, 08/21/2019 - 08:11
oui, un esp 32 c'est ce que j'ai utilisé, il est toujours programmé et près à l'emploi si j'en ai besoin, je réactive tout les mois sur no ip. à ce propos j'ai une question, si je veux utiliser 2 esp chez moi avec la possibilité de les activer depuis n'importe où dans le monde, ce n'est pas possible car je ne peux utiliser qu'un seul port 80! je n'avais pas trouvé de réponse à cette question.. c'était pour le cas ou je voudrai utiliser un esp classique integré sur un relais et un esp 32. J'ai 4 bouton sur mon smartphone qui active mon esp 32, ça fonctionne mais j'aurai voulu ajouter une caméra j'ai abandonné ou remis à plus tard. .
Walter
mer, 08/21/2019 - 11:12
Ha du coup pourquoi tu passe par ton arduino pour le programmer ?
Tu peux choisir la vitesse de transfert normalement dans l'éditeur Arduino ?
Je suppose que sur ton routeur ADSL tu as mappé le port 80 sur celui de ton esp(port 80 de l'IP de ton ESP)?
Dans ce cas il suffit que tu choisisse un autre port port ton autre ESP (ex 81 ou 8080 ou autre) et que tu fasse la même chose sur ton routeur ADSL pour celui-ci.
magmasanne
mer, 08/21/2019 - 20:27
la vitesse de transfert est le "baud"?
J'ai fait ça il y a plus d'un an mais je me souviens qu'il y avait le port écrit ds le programme, j'avais changé par 8080 mais ça n'avait pas marché ou alors j'ai omis de le changer ds le programme.
En faisant mes recherches j'avais trouvé cette solution, ça me revient maintenant.
au moins je sais maintenant que c'est la soluce..
Merci pour tes conseils, Je me suis fait aussi une boite aux lettres à ouverture électronique avec keypad et ecran LCD 2 lignes, j'y ai ajouté un superhétérodyne 433 mhz pour la sonnette et pour le compteur d'ouverture de trappe ou porte. Suite à un vol de colis aliexpress, par mon voisin qui a un passe, j'ai été obligé de faire ça. le facteur à le code, c'est là depuis 2018 et ça fonctionne toujours, je me suis aussi fabriqué un keypad avec 16 boutons car les keypad aliexpress finissent par déconner.
lorsque le facteur ouvre la trappe ou la boite, un canard porte clef reconverti fait coin coin pour m'avertir et le compteur indique le nombre d'ouverture. sur la vidéo ile 433 mhz n'était pas encore installé.
https://www.youtube.com/watch?v=7jKE9yWWRVc
Walter
jeu, 08/22/2019 - 13:54
Oui c'est ça par défaut on utilise une valeur standard de 9600 bauds, mais tu peux normalement mettre bien plus (115200 voir 200000 et des bananes).
Très jolie boite à lettre, de même que pour ton cube, n'hésite pas a en faire un sujet dans "Projet réalisé"
Coté consommation/autonomie cela donne quoi ?
magmasanne
jeu, 08/22/2019 - 23:30
pas les bananes, si j'en mange une, je transpire des gouttes grosses comme le bout de l'anulaire et j'ai un mal de ventre terrible, le premier signe est un chatouillement dans la gorge comme Thierry Lermite.J'ai mangé ma dernière banane en 81. Je n'ai jamais osé en manger une autre depuis.
mon montage consomme 3 18650 / semaine mais je vais remplacer le relais par une puce C005 et un transistor, ça consommera moins. en appuyant sur le bouton, le relais ferme le circuit durant 30 sec durant lesquels le lcd affiche et l'arduino est actif ainsi que le relais qui envoie les 12 volt vers le solénoide
les 18650 font un peu moins de 3000 mAh. je crois avoir une conso de 15 mA en hors service et 75 en service. si mes souvebir sont bon.
je ferai une nouvelle video de tout ça lorsque j'aurai refais un circuit moins gourmand et je le mettrai en projet réalisé avec le cube. Bien qu'une charge par semaine n'est pas contraignant.
le 433 mHz et les piles du solenoide sont rechargé tout les 3/4 mois, ça consomme pas du tout..
magmasanne
dim, 08/25/2019 - 13:21
Bonjour; j'étais et je suis tjrs occupé avec mon pare brise de sprinter, la baie était rouillé, j'ai fait enlevé le pare brise et j'ai décaper et mastiqué les trous , j'ai ajouté un transformateur de rouille pour être sur que ça ne rouillera plus. coût 250€ pour un pare brise neuf et son joint. ils me demandaient 800€ chez carglass, ils peuvent offrir les essuie glace à ce prix. chez france pare brise ils m'ont dit " on traite la rouille au framéto, ça s'arrête là". en préparant la baie moi même, je suis sur que se sera bien fait.
je suis chez bouygyes avec l'adsl fil de cuivre, j'ai même pas la tv mais j'ai iptv qui fonctionne moyen souf le soir, freeze à toute les chaînes..
la batterie qui alimente l'arduino et le lcd est une box avec 3 18650 dedans dont voici le lien, le problème avec ces box c'est qu'il ne délivre pas en permanence 5 volts, la tension baisse à 2 volt env après 10 sec si il n'est pas sollicité, du coup l'affichage du minuteur s'allume et s'éteint sans arrêt.
quel solution as tu? je suis très intéressé. Merci
https://fr.aliexpress.com/item/32787714527.html?spm=a2g0o.detail.1000014.21.60e61c44jlbUFp&gps-id=pcDetailBottomMoreOtherSeller&scm=1007.13338.136569.000000000000000&scm_id=1007.13338.136569.000000000000000&scm-url=1007.13338.136569.000000000000000&pvid=8c50d233-911c-4862-b491-7aa1a06e1060
Walter
mar, 08/27/2019 - 14:10
Oui c'est le problème avec les batteries externes, elle se "coupe" lorsqu'il n'y a pas de demande.
Dans ton cas ce que propose GEEK pour ne pas avoir de consommation, devrait sûrement pouvoir faire que ta batterie se vide alors dans une charge qui la fasse revenir au 5V et alimenter du coup ton arduino.
Après sinon tu achète 3/4 batterie 18650 avec un régulateur de charge qui consomme peu et tu fait sortir ton arduino de sommeil en mettant la broche adéquat à l'état haut via ton bouton poussoir.
Ton arduino est en 5V ou 3.3V?
Les batteries
Le regulateur
Walter
mar, 08/27/2019 - 18:13
J'ai bien indiqué se vide dans une charge, Donc pas toute seule, il serait bon de lire complément les messages avant de poster :).
Comme je ne sais pas si le relais suffit à réveiller la batterie, une charge en série avec ton bouton poussoir devrait sûrement le faire?
Je pense que cela devrait aussi marcher avec un arduino en veille ?
Walter
mer, 08/28/2019 - 09:42
:) Cool, reste à voir ce qu'il faut mettre pour sortir la batterie de veille, quelques mA de consommation doivent suffire.
magmasanne
mer, 08/28/2019 - 20:58
elle se décharge par l'action du facteur et de la batterie qui passe sans arret de 2.5 volt à 5 volt puis l'inverse, plus l'affichage de la miuterie ( 0.02A)
magmasanne
mer, 08/28/2019 - 20:55
5 volts, tout le circuit l'est
magmasanne
dim, 09/01/2019 - 13:46
Bonjour; j'avais déjà vu ces régulateur sur aliexpress sans trop savoir à quoi ils servent et comment les utiliser.
comment se branche le régulateur? deux entrées deux sorties + -?
magmasanne
mer, 08/28/2019 - 20:50
je n'avais pas vu ta réponse, en faite je remplace ma minuterie par un relais supplémentaire.
J'avoue que je ne sais pas exactement où mettre ce code ds le code existant, tout en haut de setup puis en haut de void loop? je vais faire un montage chez moi pour tester. c'est vrai que là il n'y aura aucune consommation, c'est super car quand il touche la clavier, le temps se remet au début, donc 10 secondes suffit.
Evidemment puisque c'est la première action de l'arduino, le code va en haut. je vais me débrouiller, je pense pouvoir insérer le code.
donc mon void loop sera:
void loop(){
if (millis()> tempo){
digitalWrite (portRelais, LOW);
if (action==true) {
Tempo = millis() + Delais Tempo;
}
la suite de mon void loop, la ponctuation est bonne?
j'essayerai ça dimanche. Merci
magmasanne
jeu, 08/29/2019 - 13:43
c'est très gentil de ta part, je vais le faire et je te l'enverrai pour correction si ça ne marche pas, il faut que j'apprenne. je t'avais envoyé mon schéma électrique ainsi que le code, tu ne l'as pas reçu? je l'avais envoyé depuis ma boite gmail magmasanne en "répondre" à la notification d'une réponse à mon post. peut etre qu'on ne peut pas répondre de cette façon? je dois tout transformer en" doc" si je veux envoyer qq chose depuis ici?
je suis intrigué par le moins de la batterie sur ton schéma, je dois le brancher à cette endroit obligatoirement ? car il est le" -" général de l'arduino?
magmasanne
jeu, 08/29/2019 - 21:31
oui je regarderai les videos, voici mon code, tout compte fais je veux bien que tu l'insère parce que comme tu as vu j'y comprends encore rien mais c'est vrai que j'ai pas bcq chercher à apprendre jusque là, j'aimerai mais je dois trouver le temps, au moins d'en apprendre un peu:
le code
#include <LiquidCrystal.h> //include LCD library (standard library)
#include <Keypad.h> //include keypad library - first you must install library (library link in the video description)
//#define LedRouge 10 //define the LED pins
//#define LedVerte 12
#define LedRouge 11 //define the LED pins
#define LedVerte 12
char* password = "1234"; //create a password
int position = 0; //keypad position
int vitesse = 50;
byte BoucleAttente = 15;//15*50=750ms tempo cadencement scroll ecran
const byte rows = 4; //number of the keypad's rows and columns
const byte cols = 4;
byte PositionEtoile = 0;
char keyMap [rows] [cols] = { //define the symbols on the buttons of the keypad
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
//byte rowPins [rows] = {1, 2, 3, 4}; //pins of the keypad
//byte colPins [cols] = {5, 6, 7, 8};
byte rowPins [rows] = {2, 3, 4, 5}; //pins of the keypad
byte colPins [cols] = {6, 7, 8, 9};
Keypad myKeypad = Keypad( makeKeymap(keyMap), rowPins, colPins, rows, cols);
// pins of the LCD.(RS, E, D4, D5, D6, D7)
//LiquidCrystal lcd (A0, A1, A2, A3, A4, A5);
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
void setup() {
Serial.begin(115200);
lcd.begin(16, 2);
pinMode(LedRouge, OUTPUT); //set the LED as an output
pinMode(LedVerte, OUTPUT);
premier_affichage();
setLocked (true); //state of the password
}
void loop()
{
for (int positionCounter = 0; positionCounter < 8; positionCounter++)
{
lcd.scrollDisplayRight(); // scroll one position right:
attente();
}
for (int positionCounter = 0; positionCounter < 8; positionCounter++)
{
lcd.scrollDisplayLeft();// scroll one position left:
attente();
}
saisie_code();//Serial.println(nom[f]);
}
void saisie_code()
{ //Serial.print(password [position+1]);Serial.print("....");Serial.println(position);
char toucheSaisie = myKeypad.getKey(); //define which key is pressed with getKey
if (toucheSaisie)
{ PositionEtoile++; lcd.setCursor(PositionEtoile + 4, 1); lcd.print("* ");
Serial.print(position); Serial.print(" "); Serial.println(toucheSaisie);
if (toucheSaisie == '*' || toucheSaisie == '#' || toucheSaisie == 'A' || //define touche non valides
toucheSaisie == 'B' || toucheSaisie == 'C' || toucheSaisie == 'D')
{
position = 0;//Serial.println(position);
setLocked (true); //on ferme
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" ENTER PASSWORD ");//lcd.print(toucheSaisie);
delay(1000);
asm volatile (" jmp 0");
}
if (toucheSaisie == password [position]) //si le chiffre attendu est ok, on incremente le compteur
{
position ++;
}
if (position == 4)
{ //si le compteur = 4
setLocked (false); //on ouvre
lcd.clear();
//lcd.setCursor(0, 0);
lcd.print("*** Code Bon ***");
delay(3000);
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("MERCI");
lcd.setCursor(1, 1);
lcd.print("Bonne journee.");
delay(3000);
asm volatile (" jmp 0");
}
}
}
void setLocked(int locked)
{
if (locked)
{ //on ferme
digitalWrite(LedRouge, HIGH);
digitalWrite(LedVerte, LOW);
}
else
{ //on ouvre
digitalWrite(LedRouge, LOW);
digitalWrite(LedVerte, HIGH);
delay(2000); //impulsion de 2 secondes sur la led/gache/solenoide
digitalWrite(LedRouge, HIGH);
digitalWrite(LedVerte, LOW);
}
}
void attente()
{
for (int a = 0; a <= BoucleAttente; a++)
{
delay(vitesse); saisie_code();
}
}
void premier_affichage()
{ lcd.clear();//lcd.setCursor(0, 1);lcd.print(" ");
lcd.setCursor(4, 0); lcd.print("L MARION n4");
lcd.setCursor(3, 1);
lcd.print("0680184xxx");
for (int positionCounter = 0; positionCounter < 2; positionCounter++)
{
lcd.scrollDisplayLeft();// scroll one position left:
attente();
}
lcd.setCursor(4, 1);
}
et voici un lien vers mon schéma.
:https://drive.google.com/file/d/1nmTwWohA8Vd8Uu1I54cIQym0AI6Qn6ll/view?u...
magmasanne
jeu, 08/29/2019 - 21:34
PS, je n'ai pas de step down comme indiqué sur le schéma, j'ai une alim en 5 volts
magmasanne
sam, 08/31/2019 - 20:19
Bonjour; j'ai testé avec mon code où tu as ajouté le tempo (30/08 à 13h07) mais la led verte ne s'allume pas, ça ne s'éteint pas au bout de 10 sec mais env 40 sec après sauf si j'appuie sur A/B/C/D/# ou*, s'éteint après 6 secondes
le nouveau code que tu as écris est trop compliqué pour le facteur car quand il se fait remplacer il doit expliquer au remplaçant donc il faut quelque chose de simple, un code à 4 chiffre qui allume la led verte, squand le code est donné dans l'ordre, même dans une série de chiffre, tel que ça se passe dans mon code actuel.
mais tu ne l'as pas écrit pour rien car je le conserve pour une alarme que je dois faire.
donc si tu pouvais revoir le premier code du 30/08 à 13h07, se serait sympa, la rallonge de 10 seconde si appuie sur une touche n'est pas obligé, 30 seconde suffit pour tout.
j'ai fait une video pour te montrer:
https://drive.google.com/open?id=17qq_nq9qGMpmlLAlL3IlXPP3sl3LQvHi
magmasanne
ven, 08/30/2019 - 13:45
Merci bcq, je n'aurais pas su l'écrire correctement, j'aurai oublié de définir la pin 10, en plus il fallait insérer un delaiTempo en dessous de void saisie_code.
le delaiTempo signifie 10000 millisecondes. c'est génial tout ça, vivement que j'en sache plus.
je vais tester tout ça dimanche et je te donnerai le résultat mais ça devrait fonctionner..
je peux aussi ajouter des sons associer au touche du clavier ?
magmasanne
dim, 09/01/2019 - 11:53
Bonjour; j'ai téléchargé ce dernier code que tu as réécrit, bcq de temps pour faire tout ça dit moi? avec la video très bien faite d'ailleurs! j'ai déclaré portGache13 et portRelai12.
tu as déclaré un keypad 5x5?
j'ai le A à la place du 3, B/6, C (éffacement)/8 et le tempo ne fonctionne pas, le keypad n'est plus utilisable après le delais.
j'ai lu ton code mais je ne vois pas où tu déclare les pins pour le keypad, j'ai vu sur la video qu'ils sont entre d4 et d11
l'affichage des chiffres me permet de constater que le keypad que j'ai fabriqué fonctionne correctement.
si je connecte la pin 2 du bouton push sur le vin de l'arduino, ça ne fonctionne pas correctement, il faut le connecter sur le + 5 volts.
en tout cas, merci bcq pour le temps que tu prends pour moi, c'est vraiment sympa et j'espère pouvoir te rendre service à mon tour. Je suis couvreur zingueur, il ne t'arrive pas une tuile? lol
Walter
dim, 09/01/2019 - 14:32
Oui le tableau à deux dimensions représentant le keypad est de 5x5.
le code semble à correcte comme ça pour la lecture, le Touche[L - 3][C - 7];" L de 4 à 7 et C de 8 à 11
lit les éléments du tableau 5x5 de l'indice 1 à 4 (premier élément avec l'indice 0) pour le premier ensemble et de 1 à 4 pour le deuxième élément.
Donc le premier tableau avec les "" est ignoré, ainsi que le premier elements des autres tableaux.
Tu n'a rien changé?
La déclaration du clavier est dans la fonction setup()
La première boucle déclare les broches 4, 5, 6, 7 en sortie et les positionne à HIGH
La première boucle déclare les broches 8, 5, 6, 11 en entré connecté avec une résistance au +5
En espérant avoir pu un peu d'aider
magmasanne
dim, 09/01/2019 - 14:36
non, mis à part le portRelai et gache
magmasanne
dim, 09/01/2019 - 21:01
j'ai téléchargé mon code d'origine pour voir si mes branchements sont ok, tout fonctionne.
sur ton code l'appuie sur 3 affiche un A à l'écran, le 6 un B et le 9 éfface tout. l'appuie sur les lettres ne donne rien. un BP c'est un bouton push?
c'est quoi ton simulateur? ça m'as l'air bien, pas besoin de faire de montage. où est ce que les pins du keypad sont déclarées ds ton code?
je suis de Royan, charentes maritime mais je suis ch'ti, j'habite ici depuis une trentaine d'années. y'a plus de soleil, moins humide, moins froid, y'a pas photo c'est mieux..
je vais essayer cette semaine d'insérer la temorisation ds mon code d'origine sans action sur les touches, en mettant juste 30 secondes de fonctionnement car je pense que l'afficahge du lcd s'emmêle les pinceaux, il ne faut pas grand chose pour que ça ne fonctionne pas mais ça me plait bcq et je vais consacrer mon hiver à apprendre la programmation arduino. C'est pour ça que ton simulateur m'interesse.
Walter
dim, 09/01/2019 - 21:17
je t'ai répondu sur la déclaration des broches, regarde mon post un peu plus haut :)
Si tu continue à avoir le décalage joue avec l'instruction "Touche[L - 3][C - 7];"
en mettant C-8 par exemple, mais cela voudrait dire que tu as que 4 élément dans ton deuxième tableau.
c'est dire {"D", "C", "B", "A"} au lieu de {"D", "D", "C", "B", "A"}
magmasanne
lun, 09/02/2019 - 22:24
c'est tinkercad le simulateur, j'ai deja un compte pour les objet en 3d, je ne savais pas que ça faisait simulateur arduino, c'est cool! j'ai refais le circuit en simulateur tel que je l'avais fait sur la video que je t'ai envoyé et j'ai inséré en texte ton code mais ça ne marchait pas. j'ai enlevé le câble rw vers gnd du lcd et ça marche, la boite s'ouvre mais la led verte reste allumé. le code inséré est le nouveau que tu as réécrit.
quel est le problème selon toi?
magmasanne
lun, 09/02/2019 - 22:30
https://www.tinkercad.com/things/648skdHAu74-sizzling-snicket-jaagub/edi...
magmasanne
mar, 09/03/2019 - 14:02
oui, j'avais remarqué que le temps de simulation était bizarre, c'est le temps que l'on affiche ds le code qui est utilisé pour la simulation, sauf que la virgule n'est pas au bon endroit, 10 seconde devient 100 secondes en simulation ou qq ch comme ça. Donc ça marche, la led verte s'éteint.
je vais débrancher le rw du gnd dans la réalité et ça devrait fonctionner. je te dirait ça. en tout cas ce simulateur est génial. peut on rajouter des composants? je vient de recevoir un fingerprint, je voudrais l'essayer en simuklation.
magmasanne
dim, 09/08/2019 - 22:20
Bonjour; j'ai fait le montage tel que tu l'as fait sur ton simulateur, puis téléversé ton code, j'ai mis les led sur d2 et d13, la led verte s'éteint mais la rouge ne s'allume pas, j'ai changer les délais mais ça n'a rien donné.
je me suis tourné sur un C005 une puce minuteur plus un 2n2222 npn à la place d'un relais mais ça ne fonctionnait pas, la led 12 volts associé au 2n restait allumé. j'aurais du peut etre mettre un pnp car le signal qui active la base est à l'état bas ou connecté avant la cathode. du coup j'ai mis un relais déclenchant à l'état bas et ça fonctionne, la consommation est de 1.9 mA, la led témoin d'alimentation du relais.
Je dois avoir bcq d'électricité statique en moi car je n'avais pas besoin d'appuyer sur le bouton push pour déclencher, l'approche de mon doigt suffisait à l'allumer.
L'autre jour j'ai réussi à allumer une led en la tenant par l'anode et en faisant toucher la cathode au plan de travail en stratifié de ma cuisine, j'ai fait une video..
magmasanne
mar, 09/10/2019 - 13:03
le fichier que j'ai joint c'est la puce C005 la minuterie dont je parlais. // Library du LCD
j'ai utilisé le code que tu as réécrit, le dernier ds ce post mais le voici:
#include
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); // Attribution des pins pour le LCD
unsigned long Tempo; // Variable du temps alloulé pour valider le code
int DelaiTempo = 10000; // Valeur d'incrément de la tempo à chaque appui sur le clavier
#define PortRelai 13 // pin pour la commande du relais
#define PortGache 2 // pin pour la commande de la gâche
int L, C; // Variable correspodants à la ligne et à la colonne du clavier
String Saisie, Code, Secret = "1234A"; // Caractère Saisi, Code saisi, Valeur du code secret
String Touche[5][5] = {{"", "", "", "", ""}, {"D", "D", "C", "B", "A"}, {"", "#", "9", "6", "3"}, {"", "0", "8", "5", "2"}, {"", "*", "7", "4", "1"}};
// Tableau de léquivalence des Caractères en onction de la touche actionnée
void setup() {
pinMode(PortRelai, OUTPUT); digitalWrite(PortRelai, HIGH); // Configuration du port Relai et mise à l'état Haut
pinMode(PortGache, OUTPUT); digitalWrite(PortGache, LOW); // Configuration du port Gâche et mise à l'état Bas
delay(500);
for ( L = 4; L pinMode(L, OUTPUT);
digitalWrite(L, HIGH);
}
for ( C = 8; C pinMode(C, INPUT_PULLUP);
}
Tempo = millis() + DelaiTempo; // Attribution du temps à la tempo
lcd.begin(16, 2); // Déclaration du nombre de caractères et lignes du LCD
}
void loop() {
while (Tempo > millis()) { // Tant que la varaible tempo est supérieure au temps depuis que l'Arduino est sous tension
Clavier(); // Activation du Clavier
}
digitalWrite(13, LOW); // Si la condition ci dessus n'est plus respectée la relai est désactivé
}
void Clavier() {
for (L = 4 ; L digitalWrite(L, LOW); // "" "" "" "" ""
for (C = 8; C if (digitalRead(C) == LOW) { // si elle passe à l'état bas c'est que la touche correspondant est appuyée (court circuit entre L et C)
Tempo = millis() + DelaiTempo; // On ajoute du temps à la tempo
Saisie = Touche[L - 3][C - 7]; // La valeur Saisi est récupérée dabs le tableau de correspodance des touches en onction de la ligne et la colonne
if (Saisie == "D") // Si D est appuyé on efface le dernier caractère saisi
Code = Code.substring(0, Code.length() - 1); // "" "" ""
else if (Saisie == "C") // Si C est appuyé on efface tout le code saisi
Code = ""; // "" "" "" "" ""
else if (Saisie == "#") // Si # est appuyé on lance la vérification du code par la fonction VerifCode
VerifCode();
else // pour tout autre caractère on le rajoute à la variable Code
Code = Code + Saisie;
lcd.setCursor(0, 0); // positionnement du caractère 0 de la ligne 0 su LCD
lcd.print(Code + " "); // Affichage du code saisi les espaces qui suivent servent à effacer les traces de l'ancien code
while (digitalRead(C) == LOW) { // Tant que la touche n'est pas relanchée on tourne en rond
delay(20);
}
}
}
digitalWrite(L, HIGH); // on repasse la ligne à l'état haut avant de passer à la ligne suivante
}
}
void VerifCode() {
lcd.clear(); // effacement de l'afficheur LCD
int Position = (16 - Code.length()) / 2; // calcul de la position pour le centrage de l'affichage du code
lcd.setCursor(Position, 0); // Positionnement du curseur sur cette position
lcd.print(Code); // affichage du code sur le LCD
lcd.setCursor(0, 1);// Positionnement due curseur sur la ligne du bas premier caractère
if (Code == Secret) { // si le Code correspond à la variable Secret
lcd.println("Ouverture Boite "); // on affiche ce message
digitalWrite(PortRelai, HIGH); // on actionne la Gâche
}
else // si non
lcd.println("Le code est faux"); // on affiche que le code est faux
delay(2000); // on attend 2 secondes
digitalWrite(PortGache, LOW); // On relache la gâche
Code = "";
Tempo = millis() + DelaiTempo; // on rallonge la tempo
lcd.clear(); // on efface le LCD
}
magmasanne
mar, 09/10/2019 - 13:03
le fichier que j'ai joint c'est la puce C005 la minuterie dont je parlais. // Library du LCD
j'ai utilisé le code que tu as réécrit, le dernier ds ce post mais le voici:
#include
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); // Attribution des pins pour le LCD
unsigned long Tempo; // Variable du temps alloulé pour valider le code
int DelaiTempo = 10000; // Valeur d'incrément de la tempo à chaque appui sur le clavier
#define PortRelai 13 // pin pour la commande du relais
#define PortGache 2 // pin pour la commande de la gâche
int L, C; // Variable correspodants à la ligne et à la colonne du clavier
String Saisie, Code, Secret = "1234A"; // Caractère Saisi, Code saisi, Valeur du code secret
String Touche[5][5] = {{"", "", "", "", ""}, {"D", "D", "C", "B", "A"}, {"", "#", "9", "6", "3"}, {"", "0", "8", "5", "2"}, {"", "*", "7", "4", "1"}};
// Tableau de léquivalence des Caractères en onction de la touche actionnée
void setup() {
pinMode(PortRelai, OUTPUT); digitalWrite(PortRelai, HIGH); // Configuration du port Relai et mise à l'état Haut
pinMode(PortGache, OUTPUT); digitalWrite(PortGache, LOW); // Configuration du port Gâche et mise à l'état Bas
delay(500);
for ( L = 4; L pinMode(L, OUTPUT);
digitalWrite(L, HIGH);
}
for ( C = 8; C pinMode(C, INPUT_PULLUP);
}
Tempo = millis() + DelaiTempo; // Attribution du temps à la tempo
lcd.begin(16, 2); // Déclaration du nombre de caractères et lignes du LCD
}
void loop() {
while (Tempo > millis()) { // Tant que la varaible tempo est supérieure au temps depuis que l'Arduino est sous tension
Clavier(); // Activation du Clavier
}
digitalWrite(13, LOW); // Si la condition ci dessus n'est plus respectée la relai est désactivé
}
void Clavier() {
for (L = 4 ; L digitalWrite(L, LOW); // "" "" "" "" ""
for (C = 8; C if (digitalRead(C) == LOW) { // si elle passe à l'état bas c'est que la touche correspondant est appuyée (court circuit entre L et C)
Tempo = millis() + DelaiTempo; // On ajoute du temps à la tempo
Saisie = Touche[L - 3][C - 7]; // La valeur Saisi est récupérée dabs le tableau de correspodance des touches en onction de la ligne et la colonne
if (Saisie == "D") // Si D est appuyé on efface le dernier caractère saisi
Code = Code.substring(0, Code.length() - 1); // "" "" ""
else if (Saisie == "C") // Si C est appuyé on efface tout le code saisi
Code = ""; // "" "" "" "" ""
else if (Saisie == "#") // Si # est appuyé on lance la vérification du code par la fonction VerifCode
VerifCode();
else // pour tout autre caractère on le rajoute à la variable Code
Code = Code + Saisie;
lcd.setCursor(0, 0); // positionnement du caractère 0 de la ligne 0 su LCD
lcd.print(Code + " "); // Affichage du code saisi les espaces qui suivent servent à effacer les traces de l'ancien code
while (digitalRead(C) == LOW) { // Tant que la touche n'est pas relanchée on tourne en rond
delay(20);
}
}
}
digitalWrite(L, HIGH); // on repasse la ligne à l'état haut avant de passer à la ligne suivante
}
}
void VerifCode() {
lcd.clear(); // effacement de l'afficheur LCD
int Position = (16 - Code.length()) / 2; // calcul de la position pour le centrage de l'affichage du code
lcd.setCursor(Position, 0); // Positionnement du curseur sur cette position
lcd.print(Code); // affichage du code sur le LCD
lcd.setCursor(0, 1);// Positionnement due curseur sur la ligne du bas premier caractère
if (Code == Secret) { // si le Code correspond à la variable Secret
lcd.println("Ouverture Boite "); // on affiche ce message
digitalWrite(PortRelai, HIGH); // on actionne la Gâche
}
else // si non
lcd.println("Le code est faux"); // on affiche que le code est faux
delay(2000); // on attend 2 secondes
digitalWrite(PortGache, LOW); // On relache la gâche
Code = "";
Tempo = millis() + DelaiTempo; // on rallonge la tempo
lcd.clear(); // on efface le LCD
}
magmasanne
mar, 09/10/2019 - 21:16
ah! ok, j'ai pourtant lu le code mais j'ai pas vu l'errreur, j'étais troublé par les 20 ms.
je vais le remonter et essayer. Merci
magmasanne
jeu, 09/12/2019 - 13:47
non, il faut que je refasse le branchement, ce week end.
magmasanne
sam, 09/28/2019 - 14:20
Bonjour; j'ai fait un montage à partir d'une puce C005, qui active un relais. Cette pice est fragile, j'en ai grillé 5 en testant mon montage mais ça marche. On ne peut pas utiliser cette piuce pour alimenter alors j'ai pris un relais, un transistor 2n222 et 2 résistance de 1 k et 2k pour l'alimentation de la puce et pour la base du 2n. la consomation est de 0 à l'arret et 7 mA en fonctionnement. Pour le code que tu as fait, il faut que je l'insère dans mon code actuel qui contient le code du LCD mais je ne l'ai pâs encore fait.
https://drive.google.com/open?id=1E-vpay0JUu8fYAvod4tkt-_b7p-_j9n3
J'ai une question, est il possible de récupérer un code téléversé dans un arduino depuis cet arduino? en somme faire l'opération inverse.
magmasanne
sam, 09/28/2019 - 14:29
j'ai fait une horloge aussi avec température et hydrométrie mais j'ai inversé les fils d'alimentation du ds1302 et il a grillé, j'en ai commandé 2 autres que j'attends. j'ai aussi remplacé les batterie d'une perceuse mais elle ne charge pas, j'attends un BMS 18650 5S.
la batterie charge un peu puis elle clignote comme pour indiquer que les batteries sont HS (clignotement rouge).
magmasanne
dim, 09/29/2019 - 08:44
le c005 est un minuteur que je compte placer sur la boite à lettre si je n'arrive pas à insérer le tempo dans le code, je t'en avais parlé plus haut.
pour le reste je te raconte ce que je fais d'autre
magmasanne
dim, 09/29/2019 - 14:14
oui mais comme je t'ai deja dit, tu n'as pas inclus l'écran LCD et les infos qu'il délivre, j'en ai besoin, il y a mon nom, mon adresse et mon tel au cas ou un livreur voudrait ouvrir ma bal, il m'appelle grace au info du lcd et je lui donne le code
en plus, tu vas peux etre trouver ça exagéré mais c'est la vérité, il ne faut pas trop en demander au facteur ou livreur, je l'ai constaté et leur demander d'appuyer 2 seconde sur le bouton et valider par # suffit à les faire renoncer et poser le colis sur la boite à lettre, j'ai installé une sonnette au dessus de la boite à lettre, aucun ne l'a remarqué avant que je leur dise, pourtant il y a le symbole d'une cloche vibrante juste à côté.
j'ai vu des colis repartir en chine car non livré alors que mon numéro de tel est sur le colis. en général se ne sont pas des flèches