Je reviens vers au sujet d'un montage que je peaufine. Je suis déjà passé par ce forum et vous m'aviez bien aidé. Donc je reviens
Alors j'ai un bouton poussoir (lien ci joint) que je souhaite faire fonctionner comme ceci:
J'allume le systeme le bouton s'allume en vert
je fais une impulsion il s'allume en rouge
je refais une impulsion il s'allume en vert..
En gros à chaque impulsion il change de couleur. Ce bouton poussoir comme un servo via un Arduino Nano.
Je n'ai pas beaucoup d'info sur ce bouton et je n'arrive pas à le faire fonctionner. La seul chose que je fais est d'allumer via la borne + et - et quand j'inverse la polarité il change de couleur..
Les 2 autres borne ne change rien (enfin je ne trouve pas... )
Avez vous déjà vu ce type de bouton ?
Est-il possible d'inverser la polarité à chaque impulsion via l'arduino ?
Tu peux télécharger une fiche technique sur le site. Il y a sans doute plus d'infos.
Mais on est en droit de supposer qu'il y a 2 broches pour le poussoir et 2 broches pour les LEDs. un petit coup d'ohmmètre te permettrait de lever le doute.
Oui effectivement il y a une fiche technique mais le téléchargement ce fait pas je pense qu'il la renvoi par mail, mais avec le week-end..
Ha oui exact je ne comprenais pas car avec l'hohmmètre il n'y avait rien car pour moi ça devait passer par le +
Mais effectivement le + et - sont pour le Led et les 2 autres broches sont pour le bouton..
Super merci ça avance. du coup maintenant la partie bouton fonctionnera avec mon programme actuel mais il faut que j'apporte la partie Led avec les infos de jpbbricole .. et là c'est autre chose..
Eventuellement je veux bien de l'aide sur cette partie.
Pour info,Texte préformaté voici mon programme actuel qui fonctionne bien:
Ok car je pense via un shield pour valider le montage et ensuite le passer version définitive.
Donc les branches qui correspondant sont 9 et 10 en (il me semble)
Pour la résistance je ne suis pas sur d'en avoir besoin car je suis en 5V partout bouton également ..
Autre chose j'ai un message d'erreur en téléversant que voici :
Arduino : 1.8.15 (Mac OS X), Carte : "Arduino Nano, ATmega328P (Old Bootloader)"
Le croquis utilise 2976 octets (9%) de l'espace de stockage de programmes. Le maximum est de 30720 octets.
Les variables globales utilisent 211 octets (10%) de mémoire dynamique, ce qui laisse 1837 octets pour les variables locales. Le maximum est de 2048 octets.
avrdude: ser_open(): can't open device "/dev/cu.usbserial-1420": No such file or directory
Problem uploading to board. See https://support.arduino.cc/hc/en-us/sections/360003198300 for suggestions.
Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
A toi d'essayer, tu peux commencer à 330 ohms par exemple, en augmentant cette valeur, donc diminuer la consommation, tant que la luminosité des LED est acceptable.
Ok tres bien et il faut en mettre sur les 2 fils 9 et 10 ?
Petite question au passage est-il possible d'avoir une sorte de veille sur le système. Par exemple au bout de 20 min sans action de bouton le système ce met en veille et pour le remettre en route il suffit de re-appuyer sur le bouton..
Cela est possible avec un Arduino Nano?
Alors petit retour du test de ce week end. Déjà c'est vraiment top ça marche bien.
Cependant j'aimerais connaitre le nombre de cycle que je peux avoir au maximum (jusqu'à ce que la batterie soit à plat)..
A partir de cela je pourrais éventuellement diminuer la résistance afin d'avoir une meilleur visibilité de la led en extérieur. actuellement je suis avec une résitance de 470 ohms et suivant la lumière extérieur je vois plus ou moins bien..
J'ai vu qu'il y avait des codes comme ceci:
while (true) {
// instructions exécutées à l'infini
}
faut'-il rajouter ce code à mon actuel tout simplement?
J'ai reçu un nouveau servo plus costaud qui sera plus sur que l'actuel.
Il s'agit d'un feetech STS3032. J'ai téléchargé la librairie et j'ai commencé a faire un premier code (ci joint) mais il présente cette erreur:
exit status 1 'SCSERVO_H' was not declared in this scope
Je pense que le nom n'est pas reconnu par la librairie ..je comprend pas trop.. Vous en pensez quoi ?
#include <SCServo.h>
SMS_STS sms_sts;
#define PINBOUTON 8
#define pinledBicoloreA 9
#define pinledBicoloreB 10
#define POS0 0
#define POS1 1000
#define SPEED 1000
#define IDSERVO 1
#define WAITINGTIME 2000
bool positionNumber = 0;
uint16_t servoPositions[2] = {POS0, POS1};
void setup() {
pinMode (PINBOUTON, INPUT_PULLUP); // Initialisation du pin de lecture du bouton
pinMode (pinledBicoloreA, OUTPUT); // Initialisation du pin d'une des 2 LED
pinMode (pinledBicoloreB, OUTPUT); // Initialisation du pin de l'autre LED
ledBicolore(positionNumber);
Serial.begin(1000000);
SCSERVO_H.pSerial = &Serial;
delay(500);
SERVO.EnableTorque(IDSERVO, true);
SERVO.WritePos(IDSERVO, servoPositions[positionNumber], SPEED); // Initialisation de la position du servo
}
void loop() {
if(!digitalRead(PINBOUTON)) {
positionNumber = !positionNumber;
ledBicolore(positionNumber);
SCSERVO_H.WritePos(IDSERVO, servoPositions[positionNumber], SPEED);
delay(WAITINGTIME);
}
}
void ledBicolore(int position)
{
if (position == 0) // Allumer rouge
{
digitalWrite(pinledBicoloreA, LOW);
digitalWrite(pinledBicoloreB, HIGH);
}
else // Allumer en vert
{
digitalWrite(pinledBicoloreA, HIGH);
digitalWrite(pinledBicoloreB, LOW);
}
}