Как преобразовать мгновенную кнопку в сенсорный датчик TTP223?
Я пытаюсь преобразовать
этот проект https://maker.pro/arduino/projects/simple-fm-radio-receiver-with-arduino-uno-and-rda5807m
до 3 сенсорных датчиков TTP223.
Но пока мой новый код не работает.
Пожалуйста, не могли бы вы взглянуть на эти изменения?
Обновить:
Код переходит в цикл, и последовательный монитор показывает: толчок 3 толчок 4 толчок 2 толчок 3 толчок 4 толчок 2
и так далее
Я также вижу на OLED-дисплее, что 3 пункта меню меняются циклически.
Датчик TTP223, подключенный к контакту 4, всегда остается включенным с включенной красной лампочкой.
Если я прикоснусь к датчику, подключенному к контакту 3, меню не изменится (ручная настройка, Громкость, автонастройка).
(Я проверил сенсорные датчики, если они работают отдельно).
|
|
//TTP223
#define Pin_DOWN 4 // дестра
#define Pin_UP 2 // sinistra
#define Pin_SET 3 // меню
#define FIX_BAND 1
int menu;
#define MAXmenu 3
int menux;
#define MAXmenux 3
|
|
void setup()
{
Wire.begin();
//Serial.begin(9600);
Serial.begin(57600);
//TTP223
pinMode(Pin_DOWN,INPUT_PULLUP );
pinMode(Pin_UP,INPUT_PULLUP);
pinMode(Pin_SET,INPUT_PULLUP);
boolean SET=digitalRead(Pin_SET);
boolean UP=digitalRead(Pin_UP);
boolean DOWN=digitalRead(Pin_DOWN);
|
|
void loop() {
int newPos;
unsigned long now = millis();
// статический беззнаковый long nextFreqTime = 0;
static unsigned long nextRadioInfoTime = 0;
char c;
/*entradaV = analogRead(entrada);
#if DEBUG
Serial.print("sensor = " ); Serial.println(entradaV);delay(50);
#endif
*/
// Boton menu d
/* if(entradaV>500 && entradaV<524)
{ */
//TTP223
if(digitalRead(3) == HIGH) {
delay(150);
Serial.println("push 3");
menu++;
if(menu>MAXmenu)menu=1;
Visualizar();
#if DEBUG
Serial.print("menu = " ); Serial.println(menu);
#endif
//в то время как(1020>analogRead(entrada)) задержка (5);
}
// Boton derecho
/* if( entradaV<50)
{ */
//TTP223
if(digitalRead(4) == HIGH) {
Serial.println("push 4");
menux++;
if(menux>MAXmenux)menux=MAXmenux;
#if DEBUG
Serial.print("menux = " ); Serial.println(menux);
#endif
switch(menu)
{
case 1:
frecuencia++;
if(frecuencia>210)frecuencia=210;
delay(130);
break;
case 2:
volumen++;
if(volumen>15)volumen=15;
// в то время как(1020> analogRead(entrada)) задержка (5);
break;
case 3:
busqueda(0);
// в то время как(1020> analogRead(entrada)) задержка (5);
break;
case 4:
// ЖК-дисплей Clear();
tft.clearDisplay();
// visualPI();
delay(3000);
// ЖК-дисплей Clear();
tft.clearDisplay();
frecuenciaOld=-1;
break;
}
}
// Boton izquierdo
/* if( entradaV<700 && entradaV>660)
{ */
//TTP223
if(digitalRead(2) == HIGH) {
Serial.println("push 2");
menux--;
if(menux<1)menux=1;
#if DEBUG
Serial.print("menux = " ); Serial.println(menux);
#endif
switch(menu)
{
case 1:
frecuencia--;
if(frecuencia<0)frecuencia=0;
delay(130);
break;
case 2:
volumen--;
if(volumen<0)volumen=0;
// в то время как(1020> analogRead(entrada)) задержка (5);
break;
case 3:
busqueda(1);
// в то время как(1020> analogRead(entrada)) задержка (5);
break;
case 4:
// ЖК-дисплей Clear();
tft.clearDisplay();
//tft.печать (частота);
//visualPTY();
delay(3000);
// ЖК-дисплей Clear();
tft.clearDisplay();
frecuenciaOld=-1;
break;
}
}
|
|
@massimo, 👍1
Обсуждение0
Смотрите также:
- Отправка цифрового сигнала с одного arduino на другой
- Объединение 2 датчиков в один код с 1 кнопкой
- Функция digitalRead() ардуино не считывает входное значение, отправленное датчиком после обнаружения объекта
- Несколько ИК-датчиков с Arduino
- Помогите совместить цифровой и аналоговый код в программировании ардуино
- Может ли Arduino Uno работать со всеми этими компонентами?
- Принудительное состояние выходного сигнала
- Какова работа pulseIn?
Я предполагаю, что вы хотите заменить мгновенные кнопки в проекте сенсорными датчиками. Как именно ваш код не работает? Пожалуйста, предоставьте более подробное описание. Пробовали ли вы читать датчики касания сами по себе (без какого-либо другого кода или части проекта), чтобы убедиться, что они работают правильно?, @chrisl
И поскольку TTP223 настраивается с помощью перемычек, вы пробовали что-то вроде [этого] (https://www.instructables.com/Tutorial-for-TTP223-Touch-Sensor-Module-Capacitive/), чтобы проверить их поведение?, @chrisl
я обновил пост, @massimo