Ciao a tutti, chiedo gentilmente un aiuto, ho settato con il comando "pinMode" le porte digitali 0 e 1 , sono state settate come INPUT, ma cià non ostante su queste porte mi ci trovo una tensione di 5 V, so che queste porte possono esere usate per la trasmisione dati, ma mi sembrava di aver capito che volendo potevano esse usate anche come ingresso o uscita.
Qualcuo mi sa dire cosa eventualmente devo controllare o modificare ??
grazie :-/
mandaci il sketch.
Hai attivato la resistenza pullup?
Ciao Uwe
leggi qui:
Quando setti i pin come INPUT, attivi la resistenza di pullup interna, è così anche per tutti gli altri pin digitali.
Se invece hai riscontrato un problema anche facendo i collegamenti, allora prova a dirci cosa stai facendo e a postare il codice.
sto cercando di fare un programma che mi gestisca una tastiera a 16 tasti, sulle porte settate come INPUT ho messo una resistenza da 10K ( la resistenza è tra la porta e GND per avere lo stato LOW) ma la tensione rilevata sulle porte 0 e 1 è presente anche senza la presenza di tale resistenza.... vedo di postare il codice .. ma tenete presente che non sara finito in quanto è solo al inizio
grazie per l'aiuto
di seguito trovare il programma , ma troverete che le porte 0 e 1 non sono usate, per il momento le ho tolte dal programma per vedere se il resto funzionava , con le altre porte digitale non ho problemi funzionano regolarmente
/*
- LCD RS pin to digital pin 13
- LCD Enable pin to digital pin 12
- LCD D4 pin to digital pin 11
- LCD D5 pin to digital pin 10
- LCD D6 pin to digital pin 9
- LCD D7 pin to digital pin 8
- 2,2K resistor for contrast of LCD (Pin 3)
- 5 V for LCD (pin 1 GND, pin 2 +Vcc)
*/
#include <LiquidCrystal.h> // include the library code:
int Anal = LOW;
int Colonna = 5;
int Riga = 2;
char Numero = '0';
LiquidCrystal lcd(13, 12, 11, 10, 9, 8); // inizializo LCD
void setup() {
// Serial.begin(9600);
lcd.begin(20, 2); // dichiaro le colonne elerighe del LCD
lcd.print("Ciao"); // Scrivi nel LCD e parte dal punto 0-0 del LCD.
lcd.setCursor(0,1);
lcd.print("Digita un codice");
//pinMode (0, INPUT);
//pinMode (1, INPUT);
pinMode (2, INPUT);
pinMode (3, INPUT);
pinMode (4, INPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
}
void loop() {
for( int Ciclo=1 ; Ciclo < 4; Ciclo ++){
digitalWrite(Colonna, HIGH);
lcd.setCursor(6,0);
lcd.print(Ciclo);
for ( int Ciclo2=1 ; Ciclo2 < 4; Ciclo2 ++) {
lcd.setCursor(10,0);
lcd.print(Ciclo2);
lcd.setCursor(13,0);
lcd.print(Riga);
Anal = digitalRead(Riga);
delay(10);
if ( Anal == HIGH) {
if ( Colonna == 5 ){
if ( Riga == 2){ Numero = '1'; }
if ( Riga == 3){ Numero = '4'; }
if ( Riga == 4){ Numero = '7'; }
}
if ( Colonna == 6) {
if ( Riga == 2){ Numero = '2'; }
if ( Riga == 3){ Numero = '5'; }
if ( Riga == 4){ Numero = '8'; }
}
if ( Colonna == 7) {
if ( Riga == 2){ Numero = '3'; }
if ( Riga == 3){ Numero = '6'; }
if ( Riga == 4){ Numero = '9'; }
}
/* if ( Colonna == 7) {
if ( Riga == 0){ Numero = 'A'; }
if ( Riga == 1){ Numero = 'B'; }
if ( Riga == 2){ Numero = 'C'; }
if ( Riga == 3){ Numero = 'D'; }
delay (100);
} */
Anal=LOW;
}
Riga ++;
}
digitalWrite(Colonna, LOW);
Riga =2;
Colonna ++;
}
Colonna = 5;
//Serial.println(Anal);
lcd.setCursor(17,0);
lcd.print(Numero);
lcd.setCursor(17,1);
lcd.print(millis()/1000); // print the number of seconds since reset
ho provato anche ad attivare attivi la resistenza di pullup interna, con l'istruzione "digitalWrite(Pin, HIGH); ma non cambia nulla sulle porte 0 e 1 ho sempre una tensione.
ho provato a inizializare la scheda, facendo un UPload, in più ho caricato in arduino il programma dimostrativo "Blink", ma sulle porte 0 e 1 ho sempre tensione.
C'è qualcuno che mi sa dire come rendere utilizabili le porte digitali 0 e 1??
o quantomeno sapere se è un problema di software o se sono guaste le porte ??
trovato la soluzione, per poter usare le porte 0 e 1 di arduino 2009, bisogna fare una modifica hardware, bisogna rimuovere le resistenze R8 e R9 che collegano le porte 0 e 1 al integrato che gestisce la seriale .. per capire meglio suggerisco di guardare lo schema elettrico di arduono 2009 ... ciao ciao a tutti
ciao ginboni
Togliendo le resistenze R8 e R9 interrompi la conessione tra il ft232 e l' ATmega.
Questo significa che non puoi piú caricare uno sketch attraverso l'usb del Arduino ma devi o ripristinare il collegamento o attaccare un adattatore usb-seriale esterno sui pin del Arduino.
Ciao Uwe