Categorie

Sostituire l’ATMEGA328P-PU su Arduino: Come programmarlo – heron’s blog

Un’utile guida per chi deve sostituire l’atmega 328 del proprio Arduino:

Sorgente: Sostituire Arduino con un ATMEGA328P-PU: Come programmarlo – heron’s blog

Collegare un keypad a matrice ad Arduino

logo arduino

 

 

 

 

 

 

Componenti necessari:

  • Arduino
  • matrix keypad (il mio è un 4×4 a membrana, tipo questo).
  • 4 resistori di pull up da 10kΩ

Arduino e keypad matric

 

La libreria da utilizzare con arduino la trovate sul sito ufficiale: keypad matrix library

Il componente keypad matrix 4×4 per Fritzing l’ho creato modificando la versione 3×4 che si scarica da qui.

[UPDATE-20130731]:

Un classico esempio di utilizzo del tastierino e della libreria, il codice lo potete trovare anche qui.

Controllo accesso con password (la password viene testata automaticamente all’immissione dell’ultimo carattere, ma si può implementare  in mille altri modi):

/* @original file HelloKeypad.pde
|| @version 1.0
|| @original author Alexander Brevig
|| @editor Daniele Forti (aka willygroup)
||
|| @description
|| | Demonstrates use of the matrix Keypad library in "checking password".
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

char password[5] = "1234";
char tempPassword[5];
int tempPasswordIndex = 0;
void setup(){
  Serial.begin(9600);
}

void loop(){
  char key = keypad.getKey();

  if (key){
    tempPassword[tempPasswordIndex] = key;
    tempPasswordIndex++;
    if(tempPasswordIndex>4)
    {
      tempPasswordIndex = 0;
      if(checkPassword())
      {
        Serial.println("Password corretta");
      }
      else
      {
        Serial.println("Password errata");
      }
    }
  }
  delay(250);
}

boolean checkPassword()
{
  if(strncmp(password, tempPassword, 4) == 0)
  {
    return true;
  }
  return false;
}

 

Arduino e display tipo nokia 5110

Ho recentemente acquistato questo display LCD in Cina.

LCD tipo nokia 5110

È analogo ai display per cellulari Nokia tipo 5110, però la piedinatura segnalata è completamente errata.

La piedinatura corretta (“forse”) è:

  1. CS/CE
  2. GND
  3. DC
  4. DIN
  5. CLK
  6. VCC
  7. VLCD
  8. RESET

 

 

 

 

 

 

 

Per adattare i segnali a 5v dell’Arduino con quelli a 3.3v del display  ho utilizzato il circuito integrato CD4050BE, il cui pinout è riportato nell’immagine sottostante:CD4050B - pinout

Dopo vari tentativi e molte ricerche e letture su internet, lo schema “quasi” funzionante 1 è risultato essere il seguente:

Schema Arduino - nokia 5110

Il codice utilizzato per i test si può trovare su sito di arduino:

http://www.arduino.cc/playground/Code/PCD8544

e qui:

http://www.ladyada.net/products/nokia5110/#download

 

Fonti e siti utili:

http://arduinado.blogspot.com.br/

http://programing-fun.blogspot.com.br/2012/08/connecting-nokia-5110-lcd-breakout-to.html

  1. Ho qualche problema di contrasto e “sporco” sullo sfondo 🙁 , per questo ho ordinato un nuovo display compatibile 100% (spero!)