Débutant sur un gros projet de b**** d'airsoft

Le test ? Comme dit précédemment, j'ai du 3.3 continue. Tu pense qu'il a un défaut ? Après j'ai des ESP32. Possible d'en faire quelque chose ?

même après un reset et une pression sur le bouton?

Je ne sais pas comment faire de reset. Il n'y a pas de bouton.

C'est quoi comme modèle, fais une photo du dessus.

Pour voir "bouger" la pin 9, charges ce petit bout de programme:

const int btnPressRadioPin = 2;     // Pin du bouton activation radio

const int radioCommandePin = 9;     // Pour commande relais
const int radioCommandeEtatOn = HIGH;     // Etat pour faire tirer le relais

void setup()
{
	Serial.begin(115200);

	pinMode(radioCommandePin, OUTPUT);
	digitalWrite(radioCommandePin, !radioCommandeEtatOn);     // Faire tomber le relais
}

void loop()
{
	Serial.println("Relais ON");
	digitalWrite(radioCommandePin, radioCommandeEtatOn);     //Relais ON
	delay(5000);

	Serial.println("Relais OFF");
	digitalWrite(radioCommandePin, !radioCommandeEtatOn);     //Relais OFF
	delay(5000);
}

La sortie doit "monter" et "descendre" au rythme de 5 secondes.

c'est un ATmega 32U4 pro micro


Sans toucher au bouton
Relais OFF

Relais ON

Relais OFF

Relais ON

Relais OFF

Relais ON

Relais OFF

Je voulais dire, par là, la mesure au voltmètre!,
Quelles mesures as tu?

0 pendant quelques secondes et âpres 3.3

et ça alterne toutes les 5 secondes?

Oui. Même ci je branche comme ça, le relais tire tout le temps

je ne sais plus que dire :woozy_face:

Pas possible avec un esp32? je vais commander un 2 eme UNO.

Attend!
Il me semble que les problèmes du programme principal sont dus au fait que le UNO est à la limite de l'usage de sa mémoire.
Il faut que j'essaies avec un MEGA.

74% c'est de trop ?

à 75% tu as un message d'alerte

trop de Strings :slight_smile:

Bonsoir, ça peu créé des problèmes ?

Mince. Réécrire le script pour limité la consommation ?

non, modifier tous les messages de texte avec F

Serial.print(F("comme ceci, c'est bien"));

Serial.print("comme cela, c'est mons bien");

tu verras, c'est impressionnant comme tu vas descendre en %

si c'est un souci mémoire et que vous ne voulez pas changer d'arduino alors oui, il faut repenser le code pour qu'il soit plus efficace.

L'abus des String et les concaténation à tout va par exemple, c'est de l'hérésie :slight_smile:

par exemple quand vous faites

    Serial.println((String)uidMem.uid + "\t" + (String)uidMem.nom);

vous commencez par dupliquer uidMem.uid pour en faire une chaîne de caractères
puis vous allouez une autre chaine pour mettre "\t" dedans
puis vous allouez une autre chaine temporaire pour mettre la concaténation (String)uidMem.uid + "\t"
puis vous allouez une autre chaîne pour temporaire transformer uidMem.nom
puis vous allouez une autre chaine temporaire pour mettre la concaténation des trois
et enfin vous balancez tout ça sur le port série...

Tout ça pour ne pas écrire 3 lignes simples

Serial.print(uidMem.uid);
Serial.write('\t');
Serial.println(uidMem.nom);

qui n'allouent aucune mémoire supplémentaire...

Bonsoir

Oui, j'en suis conscient.
Je mets ces Print, surtout pour aider à la progression dans le développement, quitte à les enlever, après.
Le programme de @blazerwood est déjà très conséquent et, d'affiner l'usage des print avec F( (c'est déjà fait, en partie) ne ferai que repousser l'échéance, je vais essayer de faire un maximum, mais, pour ce qui d'extensions futures ... C'est pourquoi je préconise l'usage d'une plus "grosse" machine, un Mega, qui, en plus a beaucoup d'entrées/sorties très utiles dans cette discipline, afin de travailler "large".

Bonne soirée
jpbbricole