Skip to content

Instantly share code, notes, and snippets.

@AlessandroSpallina
Created March 24, 2015 18:44
Show Gist options
  • Save AlessandroSpallina/0f10a278f7152159a619 to your computer and use it in GitHub Desktop.
Save AlessandroSpallina/0f10a278f7152159a619 to your computer and use it in GitHub Desktop.
/****************************************************************************
* Copyright © 2015 Alessandro Spallina
* email: alessandrospallina1@gmail.com
* website: aleksnote.altervista.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
****************************************************************************/
#define LED0 13
#define LED1 11
#define LED2 4
#define LED3 3
#define LED4 2
#define LED5 12
#define LED6 8
int incomingByte=0;
int init_controller=-1;
void on_matrix()
{
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
}
void off_matrix()
{
digitalWrite(LED0, LOW);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
}
//lampeggia n volte con un x delay
void lampeggia(int ritardo, int volte)
{
int i;
for(i=0; i<volte; i++)
{
on_matrix();
delay(ritardo);
off_matrix();
delay(ritardo);
}
}
void letterPrint(int letter, int ritardo)
{
delay(150);
switch(letter)
{
// /
case 47:
digitalWrite(LED2, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//A-a
case 65:
case 97:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//B-b
case 66:
case 98:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//C-c
case 67:
case 99:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
break;
//D-d
case 68:
case 100:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
break;
//E-e
case 69:
case 101:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED6, HIGH);
break;
//F-f
case 70:
case 102:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED6, HIGH);
break;
//G-g
case 71:
case 103:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED6, HIGH);
break;
//H-h
case 72:
case 104:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//I-i
case 73:
case 105:
digitalWrite(LED0, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED6, HIGH);
break;
//J-j
case 74:
case 106:
digitalWrite(LED0, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
break;
//K-k
case 75:
case 107:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED6, HIGH);
break;
//L-l
case 76:
case 108:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
break;
//M-m
case 77:
case 109:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
break;
//N-n
case 78:
case 110:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//O-o
case 79:
case 111:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
break;
//P-p
case 80:
case 112:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//Q-q
case 81:
case 113:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//R-r
case 82:
case 114:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//S-s
case 83:
case 115:
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED6, HIGH);
break;
//T-t
case 84:
case 116:
digitalWrite(LED1, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
//U-u
case 85:
case 117:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
break;
//X-x
case 88:
case 120:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
}
delay(ritardo);
off_matrix();
}
//*****************************************************************************
void setup()
{
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
Serial.begin(9600);
}
void loop()
{
//boot
if(init_controller==-1)
{
lampeggia(350, 3);
init_controller=0;
}
if(Serial.available()>0)
{
incomingByte=Serial.read();
Serial.print("I receveid: ");
Serial.println(incomingByte, DEC);
letterPrint(incomingByte, 1000);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment