Bonjour à tous,
Sur un D1 mini, j'ai relié un NRF24 PA LNA avec sa carte d'alim et qui communique avec succès avec d'autre NRF24 mais sa provoque des interférences sur la broche A0 du D1 mini lorsque qu'elle est utilisé et sa passe la broche D4 à l'état bas. Est ce que si j'ajoute des condensateurs de découplage sa permettrais d'isoler mais comment calculer la valeur des condensateurs et ou les placer dans le circuit (sont-ils bien placer dans sur le schéma ?) ?
Sans le NRF24L01, les boutons branché sur D4 et A0 se comporte normalement
Si rien n'est relié branché A0, le bouton relié à D4 se comporte normalement
D3 -> Bouton
D4 -> Bouton 2
A0 -> Résistance Pull-up 10k -> Bouton 3
D0 -> CE (nRF24)
D8 -> CSN (nRF24)
D7 -> MO (nRF24)
D6 -> MI (nRF24)
D5 -> SCK (nRF24)
TX -> Résistance 1K -> RX DFPlayerMini
RX -> TX DFPlayerMini
D1 -> SCL PCF8574 -> SCL LCD 16x2
D2 -> SDA PCF8574 -> SDA LCD 16x2
PCF8574 -> Keypad 4x4
Merci par avance
al1fch
April 15, 2024, 11:18am
2
Bonjour @brucekamuit
A0 : tentes un pullup de 1k Ohm et un condensateur de 100nF entre A0 et la masse
D4 : il s'agit en fait de GPIO2 qui ,sur ces cartes, est en général (pas sur toutes les copies) relié à la LED 'Builtin'
on peut supposer en l'absence de code fourni que tu agis sur la LED et mets ainsi à l'état bas GPIO2 (alias D4)
(D'autres sur ce forum auront peut être le courage d'analyser ton schéma dessin de câblage, j'y renonce, ma vue n'est pas adaptée à ce genre d'exercice. je ne me prononce donc pas sur la mainère dont les divers éléments sont alimentés)
@al1fch merci de ta réponse, je vais essayer avec une résistances de 1k et un condensateur de 100nF
Oui sur le D1 mini, D4 correspond au GPIO2 et qui est relié à la LED Builtin, mais je ne me sers pas de la led dans mon code
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DFRobotDFPlayerMini.h>
#include <SoftwareSerial.h>
#include <I2CKeyPad.h>
#include <Keypad.h>
#define CE_PIN D0
#define CSN_PIN D8
#define BTN1 D3
#define BTN2 D4
#define BTN3 A0
#define DFMINI_TX RX
#define DFMINI_RX TX
SoftwareSerial softwareSerial(DFMINI_RX, DFMINI_TX);
DFRobotDFPlayerMini player;
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
#define I2C_ADDR 0x27
#define LCD_COLS 20
#define LCD_ROWS 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLS, LCD_ROWS);
const uint8_t KEYPAD_ADDRESS = 0x23;
I2CKeyPad keyPad(KEYPAD_ADDRESS);
char keymap[17] = "123A456B789C*0#D";
unsigned long lastKeyPressTime = 0;
unsigned long debounceDelay = 250;
bool isPlaying = false;
bool dfPlayerReady = false;
int volume = 30;
void setup() {
Wire.begin( );
Serial.begin(115200);
pinMode(BTN1, INPUT_PULLUP);
pinMode(BTN2, INPUT_PULLUP);
keyPad.loadKeyMap(keymap);
lcd.init();
lcd.backlight();
softwareSerial.begin(9600);
if (player.begin(softwareSerial)) {
player.volume(volume);
dfPlayerReady = true;
}
radio.begin();
radio.openWritingPipe(pipe);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
radio.printDetails();
}
void loop() {
char key = keyPad.getChar();
if (keyPad.isPressed() && key != NO_KEY && (millis() - lastKeyPressTime) > debounceDelay) {
lastKeyPressTime = millis();
Serial.println(key);
if (key == '#' && volume < 30) {
volume++;
lcd.setCursor(14, 0);
lcd.print(volume);
unsigned long previousMillis = millis();
unsigned long interval = 1000;
while(millis() - previousMillis < interval) {
// Attendre
}
lcd.setCursor(14, 0);
lcd.print(" ");
} else if (key == '*' && volume > 0) {
volume--;
lcd.setCursor(0, 14);
lcd.print(volume);
unsigned long previousMillis = millis();
unsigned long interval = 1000;
while(millis() - previousMillis < interval) {
// Attendre
}
lcd.setCursor(14, 0);
lcd.print(" ");
}
if (isdigit(key)) {
if (dfPlayerReady) {
player.play(key);
isPlaying = true;
}
}
isPlaying = false;
}
if (digitalRead(BTN1) == LOW) {
const char text[] = "Message 1";
radio.write(&text, sizeof(text));
Serial.println(text);
Serial.println(digitalRead(BTN1));
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(text);
if (dfPlayerReady) {
player.play(1);
isPlaying = true;
}
isPlaying = false;
}
if (digitalRead(BTN2) == LOW) {
const char text[] = "Message 2";
radio.write(&text, sizeof(text));
Serial.println(text);
Serial.println(digitalRead(BTN2));
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(text);
if (dfPlayerReady) {
player.play(2);
isPlaying = true;
}
isPlaying = false;
}
if (analogRead(BTN3) < 512) {
const char text[] = "Message 3";
radio.write(&text, sizeof(text));
Serial.println(text);
Serial.println(analogRead(BTN3));
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(text);
if (dfPlayerReady) {
player.play(3);
isPlaying = true;
}
isPlaying = false;
}
}
Pour plus de lisibilité j'ai "simplifier" le schéma en ne laissant que ce qui est branché sur la broche A0
system
Closed
October 12, 2024, 2:29pm
4
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.