Bonjour
Me revoilà dans la programmation pour encore des projets pour l'airsoft
Je commençais par apprendre à me servir de la bibliotheque "OneButton"car besoin d'antirebond reglable pour ce pro jet pour commencer
Et pour eviter de solliciter trop les gens j'ai fait une tentative avec l'intelligence artificielle mais je n'arrive pas à compiler le code allégé pour diagnostic
Je le soumets si des fois qqun pouvait me donner un prit coup de pouce
Le code erreur c'est:
'class OneButton ' has no member name 'begin'
(Du coup c'est à la ligne où ya begin)
Voilà j'espère avoir bien balisé le code
Merci à ceux qui prendront le temps de m'aider
`#include <OneButton.h> // Inclure la bibliothèque OneButton // Définition des pins #define BUTTON_PIN_1 2 // Pin pour le bouton 1 #define BUTTON_PIN_2 3 // Pin pour le bouton 2 OneButton button1(BUTTON_PIN_1); // Crée une instance de OneButton pour le bouton 1 OneButton button2(BUTTON_PIN_2); // Crée une instance de OneButton pour le bouton 2 void setup() { Serial.begin(9600); // Initialiser la communication série // Initialiser les boutons button1.begin(); button2.begin(); } void loop() { button1.tick(); // Mettre à jour l'état du bouton 1 button2.tick(); // Mettre à jour l'état du bouton 2 }
#include <OneButton.h> // Inclure la bibliothèque OneButton
// Définition des pins
#define BUTTON_PIN_1 2 // Pin pour le bouton 1
#define BUTTON_PIN_2 3 // Pin pour le bouton 2
OneButton button1(BUTTON_PIN_1); // Crée une instance de OneButton pour le bouton 1 OneButton button2(BUTTON_PIN_2); // Crée une instance de OneButton pour le bouton 2 void setup() {
Serial.begin(9600); // Initialiser la communication série
// Initialiser les boutons
button1.begin();
button2.begin(); }
void loop() {
button1.tick(); // Mettre à jour l'état du bouton 1 button2.tick(); // Mettre à jour l'état du bouton 2 }
C'est tout le problème avc l'IA, il ne faut pas tout prendre pour de l'argent comptant, il faut être apte à estimer la pertinence de sa réponse. C'est comme l'usage d'une calculatrice, il faut estimer "à vue de nez" si la réponse est plausible
Dans ton cas, cette ligne: class OneButton ' has no member name begin
te dis que l'IA s'est plantée, regardes un exemple de la bibliothèque pour t'en rendre compte.
Maintenant, si tu as utilisé ChatGPT, il y a l'autre, Gemini, l'IA de Google qui, elle ne s'est pas plantée
PS: Mets en forme tes sketch, avec les balises. ça fait plus propre
Voilà pour la mise en forme du code
Merci😅
J'ai besoin d'un petit indice
C'est juste le terme begin qu'il faut remplacer ou carrement le code à reprendre?
L'IA s'est plantée, elle fait un include de Onebutton en utilisant des fonctions d'une autre.
Si tu regardes la mise en œuvre d'un bouton dans le sketch de l'IA et la même chose dans un exemple de Onebutton, tu verra la différence.
sinon j'ai posté ce matin encore un exemple dans la section anglaise, voici le code dans le simulateur
utiliser l'IA sans vous former auparavant, lire des tutos ou la doc, pratiquer un peu de C++ etc est sans doute la meilleure façon de ne pas progresser...
Oui, sauf que dans ce cas le problème ne vient pas de la calculette mais bien du calcul qu'on lui donne à faire </mode humour>
@kristof19 Pas besoin d'IA pour utiliser cette bibliothèque, tu as de nombreux exemples disponible disponible dans l'IDE que tu peux lire pour voir comment fonctionne la bibliothèque, comme te l'indique @jpbbricole. Ça t'évitera de recopier bêtement un programme sans le comprendre
Il n'est pas nécessaire d’appeler une fonction d'initialisation que je sache, faire un attachClick suffit - setup permet de régler des paramètres précis comme l'utilisation de la résistance de pullup interne de ta carte Arduino, ou la pin (mais celle-ci peut être définie lors de la création de l'instance):
en fait ça a changé car sur certaines carte effectuer le pinMode dans le constructeur ne fonctionne pas. Matthias Hertel a modifié récemment sa bibliothèque (suite à une discussion à laquelle je participais) pour introduire une fonction qu'il a choisi d'appeler setup() et pas begin()
Ah! Donc ce serait à préférer même sur les cartes sur lesquelles la déclaration de la pin et du mode dans le constructeur ne pose pas de problème ?
Peut-être un truc à ajouter au tuto, au moins un WARNING pour les utilisateurs de carte non supportées par la déclaration dans le constructeur ?
oui ça vaudrait le coup de rajouter cela à votre tuto. Comme il est verrouillé, je vous le déverrouille
Dans l'absolu pour avoir un code portable ce serait la bonne solution à recommander sur toutes les cartes. (le fait que ça fonctionne sur certaines cartes c'est un peu par chance, parce que le main() fourni par arduino ne modifie pas l'état des pins sur ces cartes pour le moment... Mais on n'est jamais à l'abri d'un changement dans le futur).
Oui c'est bien ce que je me disais. Quand j'ai le temps j'ajoute ça (probablement cet aprèm, aujourd'hui je fais du CMS pour la première fois )
En effet les trucs qui tombent en marche c'est jamais bon vous avez raison.
Je vais approfondir un peu ce problème, je suis un peu trop sur GoTime ces temps-ci
Je n'ai pas incriminé la calculette mais l'usaage de celle-ci.
Mon propos
voulait dire que l'on doit être apte de se rendre compte si l'on a fait une faute de frappe ou autre erreur, comme dans l'IA si l'on a mal posé la question.
Oula
Ça fait du debat ce sujet😁
Bon que les choses soient claires je n'ai jamais compris aucune librairie de moi même
J'ai 1 projet à mon actif avec l'aide de ce forum où on m'a plus qu' aider à dépanner tout mes problèmes et quelques tutos aussi
Encore une fois je sens que je vais pouvoir avancer avec cette belle communauté
Alors je vais commencer par tester et comprendre l'exemple de gemini(je l'ai consulté du coup mais il m'a sorti un code qui compile pas)
Le tuto je l'ai déjà vu ...je regarde de plus près
Et je tiens au jus des avancées
Merci tous👍
Voilà
Je suis parti du code Gemini qui compile
J'ai changé le programme c'était 2 télérupteurs j'ai fait un allumage temporisé lorsqu'on appuie
Cependant je n'arrive pas à régler l'antirebond...
SetDebounceTicks est un terme valide?
J'ai remplacé par setdebounceMs mais pareil ça compile mais ça marche plus