char volba = ' ';
void setup() {
Serial.begin(9600);
DDRB = 0b00001111; //ako vystup stlpce 1 2 3 4
//PORTB =0b00000xxx; // bity xxx ovladame tak, ze vzdy len jeden bit na log 0, ostatne na log 1
DDRD &= 0b00001111; //ako vstup riadky A B C D
PORTD |=0b11110000; // pullup rezistor
}
void loop() {
PORTB =0b00001110; // stlpec 1 - 0 bit reg B je na log 0, ostatne na log 1
if((PIND&(1<<7)) == 0 ){ //ak je stlacene tlacidlo, dany bit je na log 0
volba = '1';}
else if((PIND&(1<<6)) == 0 ){
volba = '4';}
else if((PIND&(1<<5)) == 0){
volba = '7';}
else if((PIND&(1<<4)) == 0){
volba = '*';}
PORTB =0b00001110; // stlpec 1 - 0 bit reg B je na log 0, ostatne na log 1
if((PIND&(1<<7)) == 0 ){ //ak je stlacene tlacidlo, dany bit je na log 0
volba = '2';}
else if((PIND&(1<<6)) == 0 ){
volba = '5';}
else if((PIND&(1<<5)) == 0){
volba = '8';}
else if((PIND&(1<<4)) == 0){
volba = '0';}
PORTB =0b00001110; // stlpec 1 - 0 bit reg B je na log 0, ostatne na log 1
if((PIND&(1<<7)) == 0 ){ //ak je stlacene tlacidlo, dany bit je na log 0
volba = '3';}
else if((PIND&(1<<6)) == 0 ){
volba = '6';}
else if((PIND&(1<<5)) == 0){
volba = '9';}
else if((PIND&(1<<4)) == 0){
volba = '#';}
PORTB =0b00001110; // stlpec 1 - 0 bit reg B je na log 0, ostatne na log 1
if((PIND&(1<<7)) == 0 ){ //ak je stlacene tlacidlo, dany bit je na log 0
volba = 'A';}
else if((PIND&(1<<6)) == 0 ){
volba = 'B';}
else if((PIND&(1<<5)) == 0){
volba = 'C';}
else if((PIND&(1<<4)) == 0){
volba = 'D';}
Serial.println(volba);
}