pour le point que tu soulèves, j'ai mis un delay, qui au bout de 1 minute relâche l'inhibiteur du monnayeur.
J'ai mis une minute car la boucle du logiciel photo (prise de 4 photos + montage + imprime + retour à l'écran "insérerez crédit") dure un peu moins d'une minute.
ça doit "fonctionnellement" être simplement suffisant ;D (test en charge peut être à faire)
Juridiquement il y a peut etre des choses à verifier/blinder sur l’opération "monnayeur"
en France :
Les textes sur la liquidité imposent "au client" de faire l'appoint = pas de soucis pour une somme exacte.
Il n'y a pas obligation pour un commerçant de rendre la monnaie sur un paiement fait avec un numéraire supérieur en valeur faciale.
(heureusement pour le commerce , la quasi totalité des commerçants "rende heureusement pour tous la monnaie "
Il te faut donc bien gerer l'acceptation :
comme il n'y a pas de rendu de monnaie , tu peux accepter pour vente une somme > mais seulement pour la première valeur faciale excédentaire.
Il faut donc inhiber tres rapidement l'acceptation (circuit retombée introduction des pieces) dés que la somme demandée/exigée est atteinte.
exemple photo à 4 € par "3 z'amis bien bourrés en boite" :
introductions successives de 3 pieces de 1,2 et 2 € = operation valide
introductions successives de 3 pièces de 2,2 et 1 € = la pièce de 1 € doit etre rendue
Ahah c'est effectivement a cause de ces "fameux 3z'amis bien bourrés" que j'ai cablé l'inhibiteur.
Dès que les 4€ sont atteints l'inhibiteur du monnayeur exclu toute nouvelle insertion de pièce durant cette fameuse minute et il entre en action en 50ms, donc a moins qu'il ai une compétition de vitesse d'insertion de pièces je pense que ca ira
Sawyer:
Simple question, si j'upload le code fonctionnel que j'avais fait avec un UNO sur un LOEONARDO tel quel, est ce que cela est censé fonctionné ?
Car c'est ce que j'ai fait et ca ne fonctionne pas !
Bonsoir
reponse "générale"
entre deux "boards" realtivement proches , il est tres rare qu'un programme prevu pour X fonctionne du 1er coup sur Y, et entre uno et leonardo , la proximité est assez... relachée
La plus grosse partie du code est surement "reexploitable"
Grosse "proba" que ton probleme vient essentiellement des definitions des entrées/sorties # UNO/LEONARDO
Merci pour ta réponse je vais jeter un oeil aiguisé la dessus !
Par contre malheureusement j'ai une autre question qui est :
C'est le deuxième Leonardo que j'ai (ma boite m'en a refilé un nouveau aujourd'hui) et c'est la deuxième fois que le Leonardo réagit bizarrement, c'est à dire qu'il envoi une commande juste lorsque je le touche légèrement (voir très légèrement).
Le premier c'était encore pire, il envoyait une commande juste lorsque je rapprochais ma main :-/
Tu aurais une idée, parce que la je ne comprend pas du tout a moins d'avoir 2 Leonardo neufs HS, ce qui serait quand même la poisse !
Je reviens vers vous car la je suis un peu dépassé par le transfert du code du UNO vers le LEONARDO.
Hormis le problème que je cite juste au dessus, je ne comprend pas pourquoi lorsque je défini la pin 3 en INPUT, il faut que je branche mon fil sur la pin 2 pour que ca fonctionne (ce qui est totalement illogique).
Le Serial.print ci-dessous qui fonctionnait également sur le UNO ne fonctionne plus sur le LEONARDO, et je ne vois pas pourquoi :
void setup(){
Serial.begin(9600); //Same Baud speed as coin acceptor
Serial.println("INSEREZ CREDIT . . .");
Serial.println();
pinMode(OpticalCountPin, INPUT); //set coin acceptor signal as an input
pinMode(InhibPin, OUTPUT); //set coin acceptor inhibit as an output
attachInterrupt(1, CoinPulse, RISING);
pinMode (ButtonPin, INPUT); // make the pushButton pin an input
Keyboard.begin();
Ca fait 2 jours que je cherche une réponse à ces questions mais je ne trouve rien de concret.