Skip to content

Instantly share code, notes, and snippets.

@oscarmorrison
Created February 18, 2015 04:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oscarmorrison/04b5cc66fef88b433b47 to your computer and use it in GitHub Desktop.
Save oscarmorrison/04b5cc66fef88b433b47 to your computer and use it in GitHub Desktop.
Assignment 1 - Arduino Code
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{
'1','2','3','A' }
,
{
'4','5','6','B' }
,
{
'7','8','9','C' }
,
{
'*','0','#','D' }
};
byte rowPins[ROWS] = {
2,3,4,5}; //connect to row pinouts
byte colPins[COLS] = {
6,7,8,9}; //connect to column pinouts
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int numTones = 10;
int tones[] = { 261, 277, 294, 311, 330, 349, 370, 392, 415, 440};
// mid C C# D D# E F F# G G# A
// 1 2 3 4 5 6 7 8 9 0
const int yellowLED = 13;
const int redLED = 12;
const int speakerPin = 11;
const int period = 200;
void setup() {
// initialize digital pin 8 & 10 as an output.
pinMode(yellowLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(speakerPin, OUTPUT);
Serial.begin(9600);
}
void yellowOn(){
digitalWrite(yellowLED, HIGH);
}
void yellowOff(){
digitalWrite(yellowLED, LOW);
}
void yellowFlash(){
yellowOn();
delay(period);
yellowOff();
}
void redOn(){
digitalWrite(redLED, HIGH);
}
void redOff(){
digitalWrite(redLED, LOW);
}
void redFlash(){
redOn();
delay(period);
redOff();
}
void allOn(){
redOn();
yellowOn();
}
void allOff(){
redOff();
yellowOff();
}
void playTone(int note, int color){
if(color){ yellowOn();}
else{ redOn();}
tone(speakerPin, tones[note]);
delay(200);
allOff();
noTone(speakerPin);
}
void playTone2(int note, int color, int length){
if(color){ yellowOn();}
else{ redOn();}
tone(speakerPin, tones[note]);
delay(length);
allOff();
noTone(speakerPin);
}
void pause(){ delay(200);}
void loop(){
char key = keypad.getKey();
if(key == '1'){
playTone(0,1);
}
else if (key == '2'){
playTone(1,0);
}
else if (key == '3'){
playTone(2,1);
}
else if (key == '4'){
playTone(3,0);
}
else if (key == '5'){
playTone(4,1);
}
else if (key == '6'){
playTone(5,1);
}
else if (key == '7'){
playTone(6,0);
}
else if (key == '8'){
playTone(7,1);
}
else if (key == '9'){
playTone(8,0);
}
else if (key == '0'){
playTone(9,1);
}
else if(key == 'A'){
baabaablacksheep();
}
else if(key == 'B'){
frereJacques();
}
else if(key == 'C' || key == 'D' || key == '#' || key == '*'){
redFlash();
}
if (key != NO_KEY){
Serial.println(key);
}
}
void playC(){ playTone2(0, 1, 200);}
void playCs(){ playTone2(1, 0, 200);}
void playD(){ playTone2(2, 1, 200);}
void playDs(){ playTone2(3, 0, 200);}
void playE(){ playTone2(4, 1, 200);}
void playF(){ playTone2(5, 1, 200);}
void playFs(){ playTone2(6, 0, 200);}
void playG(){ playTone2(7, 1, 200);}
void playGs(){ playTone2(8, 0, 200);}
void playA(){ playTone2(9, 1, 200);}
void baabaablacksheep(){
playC();
pause();
playC();
pause();
playG();
pause();
playG();
pause();pause;
playA();
pause();
playA();
pause();
playG();playG();
pause();
playF();
pause();
playF();
pause();
playE();
pause();
playE();
pause();
playD();
pause();
playD();
pause();
playC();
playC();
pause();pause();
playG();
pause();
playG();
pause();
playG();
pause();
playF();
pause();
playF();
pause();
playE();
pause();
playE();
pause();
playE();
pause();
playD();
playD();
pause();
playC();
pause();
playG();
pause();
playG();
pause();
playG();
pause();
playF();
pause();
playF();
pause();
playF();
pause();
playF();
pause();
playE();
pause();
playE();
pause();
playE();
pause();
playD();
playD();
pause();pause();
playC();
pause();
playC();
pause();
playG();
pause();
playG();
pause();pause;
playA();
pause();
playA();
pause();
playG();playG();
pause();
playF();
pause();
playF();
pause();
playE();
pause();
playE();
pause();
playD();
pause();
playD();
pause();
playTone2(0, 1, 400);
pause();pause();
}
void frereJacques(){
playC();
pause();
playD();
pause();
playE();
pause();
playC();
pause();pause();
playC();
pause();
playD();
pause();
playE();
pause();
playC();
pause();pause();
playE();
pause();
playF();
pause();
playG();
pause();pause();
playE();
pause();
playF();
pause();
playG();
pause();pause();
playG();
pause();
playA();
pause();
playG();
pause();
playF();
pause();
playE();
pause();
playC();
pause();pause();
playG();
pause();
playA();
pause();
playG();
pause();
playF();
pause();
playE();
pause();
playC();
pause();pause();
playC();
pause();
playG();
pause();
playC();
pause(); pause();
playC();
pause();
playG();
pause();
playC();
pause();pause();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment