genere |
DATA |
generalità |
Note |
distribuzione |
radio |
10 |
Recupero telefono sirio |
|
|
Stavo cercando una tastiera per una prova con ARDUINO, ma possibilmente senza uscire da casa o andare in qualche fiera, così mi sono imbattuto nel vecchio telefono di casa, il SIRIO.
Praticamente in Italia ce n’è stato almeno uno per ogni casa, in un recente passato, e ancora è in uso. Prima di buttarlo, pensate che ci sono un certo numero di componenti che sono facilmente recuperabili con un saldatore e la pompetta. Il circuito stampato infatti è a singolo strato singola faccia e i componenti sono ben distanziati. È di costruzione ERICSSON FATME, almeno il mio esemplare.
Nella foto ho indicato i pezzi meno facili da reperire nei negozi o alle fiere, per i quali vale la pena darsi da fare col saldatore. Ma anche gli altri, se uno ha bisogno o voglia, sono facilmente smontabili.
La tastiera la si può usare sapendo come è collegata: basta prendere un tester e trovare tutte le connessioni tra i terminali a seconda di quale tasto viene premuto. Siccome è un po’ una palla ho trovato un modo abbastanza moderno per far prima e soprattutto per far bene. Uso ARDUINO, la bread-board, 9 pezzetti di filo e un breve programma.
I terminali sono 9, suppongo che almeno uno di essi sia una specie di schermo, ottimo se la userò in ambiente con RF. Gli altri immagino siano collegati a formare una sorta di righe colonne in cui ogni tasto sta sull’incrocio e premendolo mette insieme la riga e la colonna.
Ho collegato ogni terminale della tastiera ad un pin digitale di ARDUINO 2009, ho comandato tutti i pin in modo input e abilitato un pull-up interno da 20kOhm verso il +5V, in modo che siano tutti a uno logico.
Il programma poi mette uno alla volta i pin in modo output e a zero logico e scandisce i rimanenti: se c’è un tasto premuto uno di essi va a zero e il programma scrive sulla seriale quale è la coppia di terminali coinvolti. Vista la corrispondenza tra tasti e terminali il gioco è fatto.
/*
KEY DETECTOR
IZ5AGZ - SEPT 2010
The circuit:
* LED attached from pin 13 to ground; there is
already an LED attached to pin 13.
* FILI TASTIERA ATTACCATI UNO A UNO AI DIG PIN
2..10
*/
//
constanti, non devono cambiare nel programma.
const
int ledPin = 13; // the number of the LED pin
//
variabili, i cui valori cambieranno:
int
DIGIN = 0; // variable for
reading contatti
int
DIGOUTPIN = 0; // variable for
PIN WRITE
int
DIGINPIN = 0; // variable for PIN
READ
void
setup() {
// initialize pinS:
pinMode(ledPin, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
// initialize serial communication:
Serial.begin(9600);
// initialize PULL-UP RESISTOR SU PIN IN
INPUT MODE
for (DIGOUTPIN=2; DIGOUTPIN <= 10;
DIGOUTPIN++){
digitalWrite(DIGOUTPIN, HIGH); }
}
void
loop(){
for (DIGOUTPIN=2; DIGOUTPIN < 10;
DIGOUTPIN++){
pinMode(DIGOUTPIN, OUTPUT);
digitalWrite(DIGOUTPIN, LOW);
DIGINPIN=DIGOUTPIN+1;
for((DIGINPIN); DIGINPIN <= 10;
DIGINPIN++){
DIGIN=digitalRead(DIGINPIN);
if (DIGIN == LOW) {
digitalWrite(ledPin, HIGH);
Serial.print("CONTATTO TRA
");
Serial.print(DIGOUTPIN-1);
Serial.print(" - ");
Serial.print(DIGINPIN-1);
Serial.println(" pins");
delay(200);
digitalWrite(ledPin, LOW);
}
}
pinMode(DIGOUTPIN, INPUT);
digitalWrite(DIGOUTPIN, HIGH);
}
}
La figura mostra lo schema della tastiera di Sirio ricavato premendo i tasti e osservando il responso sul terminale seriale di Arduino.
Buon divertimento e 73 da IZ5AGZ Alessandro Frezzotti