Проблема с цифровым входом

Miha_Axe
Offline
Зарегистрирован: 23.04.2020

Всем привет еще, хочу сделать чтобы лампы индикации(акб,чек,повороты) в машине выводились в виде текста на тфт дисплей. Их я подключил на цифровые пины 10 11 12. Так же поставил подтягивающие резисторы на 4.7 КоМ на каждый цифровой вход и 4 диода - второй конец на массу.

Кароче при подаче 5в на цифровой вход загорается не только та лампа куда подал 5в а еще и остальные причем рандомно, что не так понять не могу, по умолчанию состояние лампы установлено 0. (ардуино уно )

#include <Adafruit_TFTLCD.h> // Hardware-specific library

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin (1 -> 0 min 15 micros 0 -> 1)
#define LCD_CS A3 // Chip Select goes to Analog 3 (aktiv LOW)
#define LCD_RS A2 // Command/Data goes to Analog 2  (0 command, 1 data)
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

Adafruit_TFTLCD tft(LCD_CS, LCD_RS, LCD_WR, LCD_RD, LCD_RESET);

 int akbPin = 10; // вход
 int povPin = 11; // вход
 int checkPin = 12; // вход


int akbState = 0; //статус
int povState = 0; //статус
int checkState = 0; //статус


void setup(void) {
  Serial.begin(9600); 
  //tft.begin(0x9325);
  tft.begin(0x9341);
//////////////////////////////////////////////
  pinMode(akbPin, INPUT);
  pinMode(povPin, INPUT);
  pinMode(checkPin, INPUT);
}

void loop(void) {

  //--------------------------------------------------------------------------------
  povState = digitalRead(povPin);
  if (povState == HIGH) {
    //лампа поворотов
    tft.setCursor(45, 150);
    tft.setTextColor(GREEN,BLACK);
    tft.setTextSize(3);
    tft.println(utf8rus("ПОВОРОТЫ"));
    } else if (povState == LOW) {
     tft.fillRect(10,150,220,25,BLACK);// лампа поворотов выкл
  }
  //--------------------------------------------------------------------------------
  checkState = digitalRead(checkPin);
  if (checkState == HIGH) {
    //лампа чек
    tft.setCursor(11, 120);
    tft.setTextColor(ORANGE,BLACK);
    tft.setTextSize(3);
    tft.println("CHECK ENGINE");
    } else if (checkState == LOW){
     tft.fillRect(10,120,220,25,BLACK);// лампа чек выкл
  }
//--------------------------------------------------------------------------------
akbState = digitalRead(akbPin);
if (akbState == HIGH) {
    // лампа акб
  tft.fillTriangle (120,110,15,280,225,280,RED);
  tft.setCursor(50, 290);
  tft.setTextSize(3);
  tft.setCursor(90, 180);
  tft.setTextColor(BLACK,RED);
  tft.setTextSize(11);
  tft.println("!");
  tft.setCursor(80, 190);
  tft.setTextSize(5);
  tft.setTextColor(WHITE);
  tft.println(utf8rus("АКБ"));
    } else if (akbState == LOW) {
     tft.fillTriangle (120,110,15,280,225,280,BLACK); //лампа акб выкл
  }
//--------------------------------------------------------------------------------
 delay(100);
}



 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Рисуйте схему подключения, по описанию я не понял что там с диодами, да и вообще всей картины не видно. 

Miha_Axe
Offline
Зарегистрирован: 23.04.2020

BOOM пишет:

Рисуйте схему подключения, по описанию я не понял что там с диодами, да и вообще всей картины не видно. 

 

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

И кто Вам такое подключение сказал сделать? Это же полный бред, если схема верна. 
Уберите диоды из схемы вообще (или закоротите их перемычками) и скажите как изменится поведение. 

b707
Offline
Зарегистрирован: 26.05.2017

Miha_Axe - Миха, я в Ахе от твоей схемы....

Что и куда твои резисторы "подтягивают"?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Ну а что тут скажешь? Ждем результатов по моим подсказкам выше. 

Miha_Axe
Offline
Зарегистрирован: 23.04.2020

Все работает, спасибо за подсказку)

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Все же хотелось бы узнать, откуда эти диоды в схеме взялись?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А в машине то 12+ вольт ... Вангую белый дым !

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Ну так диоды остались, можно прифигачить куда-нибудь зачем-нибудь ))))

Miha_Axe
Offline
Зарегистрирован: 23.04.2020

BOOM пишет:

Все же хотелось бы узнать, откуда эти диоды в схеме взялись?

Я где то вычитал что подтягивающие резисторы ставят от 10КоМ до 100КоМ, и решил не вашим не нашим поставил 47КоМ . Я подумал что может из за того что резисторы спаяны в кучу срабатывают все лампы, решил воткнуть диоды - не помогло. Тогда вычитал что оптимальный вариант подтягивающего резистора 10Ком, от 5КоМ и ниже,  сильная подтяжка, а от 20КоМ до 100Ком - слабая подтяжка. Так как 10 под рукой не было поставил 4.7КоМ , но диоды не убрал. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Не читай надписи на сортирных стенах, читай умные книшки. Список в песочнице

alex_r61
Offline
Зарегистрирован: 20.06.2012

 Вообще диоды не лишние, только стоят не там.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

И какой эффект дают эти диоды со своим падением напряжения порядка 0,6В?