#include "LedControl.h"
int analogPin = A0; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
int x=0;
LedControl lc=LedControl(12,11,10,1);
bool control=false;
// happy face
byte hf[8]= {B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100};
// neutral face
byte nf[8]={B00111100, B01000010,B10100101,B10000001,B10111101,B10000001,B01000010,B00111100};
// sad face
byte sf[8]= {B00111100,B01000010,B10100101,B10000001,B10011001,B10100101,B01000010,B00111100};
void setup() {
Serial.begin(9600); // setup serial
lc.shutdown(0,false);
// Set brightness to a medium value
lc.setIntensity(0,8);
// Clear the display
lc.clearDisplay(0);
}
void loop() {
val = analogRead(analogPin); // read the input pin
if((val<=200)&&(control==false)){
Serial.println("Attia posa il telefono!");
x=x+1;
Serial.print("Numero di volte in cui hai preso il telefono e' pari a: ");
Serial.println(x);
control=true;
drawFacesNeutral();
}
if(val>200) {
Serial.println("Smartphone nel garage!");
//faccina felice
control=false;
drawFacesHappy();
}
Serial.println(val); // debug value
if(x>=5){
Serial.println("Hai superato il numero massimo di volte consentito: nota sul registro!");
drawFacesSad();
// faccina triste
}
delay(2000);
}
void drawFacesNeutral(){
// Display neutral face
lc.setRow(0,0,nf[0]);
lc.setRow(0,1,nf[1]);
lc.setRow(0,2,nf[2]);
lc.setRow(0,3,nf[3]);
lc.setRow(0,4,nf[4]);
lc.setRow(0,5,nf[5]);
lc.setRow(0,6,nf[6]);
lc.setRow(0,7,nf[7]);
}
void drawFacesSad(){
// Display sad face
lc.setRow(0,0,sf[0]);
lc.setRow(0,1,sf[1]);
lc.setRow(0,2,sf[2]);
lc.setRow(0,3,sf[3]);
lc.setRow(0,4,sf[4]);
lc.setRow(0,5,sf[5]);
lc.setRow(0,6,sf[6]);
lc.setRow(0,7,sf[7]);
}
void drawFacesHappy(){
// Display happy face
lc.setRow(0,0,hf[0]);
lc.setRow(0,1,hf[1]);
lc.setRow(0,2,hf[2]);
lc.setRow(0,3,hf[3]);
lc.setRow(0,4,hf[4]);
lc.setRow(0,5,hf[5]);
lc.setRow(0,6,hf[6]);
lc.setRow(0,7,hf[7]);
}