Arduino Polska Forum
Problem z funkcjonowaniem pinów wejściowych - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Problem z funkcjonowaniem pinów wejściowych (/watek-problem-z-funkcjonowaniem-pin%C3%B3w-wej%C5%9Bciowych)



Problem z funkcjonowaniem pinów wejściowych - fix_it - 06-04-2017

Witam,
bawię się arduino od jakiegoś czasu i tworzę aktualnie jeden dosyć skomplikowany(jak da mnie) projekt.
Problem pojawił się gdy zaczęło mi ubywać pinów wejściowych.
Posiadam taką płytkę:
SparkFun ESP32 Thing

Napisałem krótki kod do przetestowania pinów 36, 37, 38, 39, 32, 33, 34, 35.
Kod:
int LED1 = 16;
int LED2 = 5;
int p1 = 36; // tutaj podmieniam nr pinu :)

void setup() {

 pinMode(LED1, OUTPUT);
 pinMode(LED2, OUTPUT);
 pinMode(p1, INPUT_PULLUP);
}

void loop() {
 
 if(digitalRead(p1) == LOW)
   {
     digitalWrite(LED1, HIGH);
     delay(1000);                      
     digitalWrite(LED1, LOW);    
     delay(1000);    
   }
 if(digitalRead(p1) == HIGH)
   {
     digitalWrite(LED2, HIGH);
     delay(1000);                      
     digitalWrite(LED2, LOW);    
     delay(1000);            
   }
}

Problem polega na tym, że program działa prawidłowo tylko na pinach  32, 33.
Innym kodem sprawdzałem na monitorze portu szeregowego stan wejścia.
Wygląda to tak, jakby rezystor podwyższający "INPUT_PULLUP" nie był dostępny dla pozostałych z w/w pinów.

Równie dobrze mógłbym pozostawić kabel od przycisku nie podpięty ( "pływające" napięcie) - efekt jest ten sam.

Ktoś wie jak to naprawić kodem? Nie chcę dokładać rezystora podwyższającego(i tak mam już mało miejsca na płytce stykowej(1680 pól)). 

Dzięki za pomoc, mam nadzieję że nie zagmatwałem Confused


RE: Problem z funkcjonowaniem pinów wejściowych - namok - 06-04-2017

Proponuję zacząć od dokładnego przestudiowania dokumentacji. W jednej z nich znajdziemy:
Cytat:GPIO pins 34-39 are input-only. These pins do not feature an output driver or internal pull-up/pull-down circuitry. The pin names are: SENSOR_VP(GPIO36), SENSOR_CAPP (GPIO37), SENSOR_CAPN (GPIO38), SENSOR_VN (GPIO39), VDET_1 (GPIO34), VDET_2 (GPIO35).



RE: Problem z funkcjonowaniem pinów wejściowych - fix_it - 06-04-2017

(06-04-2017, 16:11)namok napisał(a): Proponuję zacząć od dokładnego przestudiowania dokumentacji. W jednej z nich znajdziemy:
Cytat:GPIO pins 34-39 are input-only. These pins do not feature an output driver or internal pull-up/pull-down circuitry. The pin names are: SENSOR_VP(GPIO36), SENSOR_CAPP (GPIO37), SENSOR_CAPN (GPIO38), SENSOR_VN (GPIO39), VDET_1 (GPIO34), VDET_2 (GPIO35).

Dzięki za pomoc, wiedziałem jedynie że mogą służyć tylko jako wejście.


RE: Problem z funkcjonowaniem pinów wejściowych - namok - 06-04-2017

Możesz też użyć expanderów: http://playground.arduino.cc/Code/I2CPortExpander8574


RE: Problem z funkcjonowaniem pinów wejściowych - fix_it - 06-04-2017

Świetna sprawa, dzięki za pomoc.