• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z funkcjonowaniem pinów wejściowych
#1
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
 
Odpowiedź
#2
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).
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
(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.
 
Odpowiedź
#4
Możesz też użyć expanderów: http://playground.arduino.cc/Code/I2CPortExpander8574
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#5
Świetna sprawa, dzięki za pomoc.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości