#include "LedControl.h"
#include "Servo.h"
//matrice LED
LedControl lc=LedControl(12,10,11,1);
byte croce[8] = {0b00011000,0b00011000,0b00011000,0b11111111,0b11111111,0b00011000,0b00011000,0b00011000,};
byte cuore[8] = {0b00000000,0b01100110,0b11111111,0b11111111,0b01111110,0b00111100,0b00011000,0b00000000,};
byte peso[8]={0b00000000,0b00000000,0b11100111,0b11111111,0b11111111,0b11100111,0b00000000,0b00000000,};
byte busta[8]={0b00011000,0b00100100,0b01000010,0b01000010,0b11111111,0b11111111,0b11111111,0b01111110,};
byte bicchiere[8]={0b11111111,0b01111110,0b00111100,0b00011000,0b00011000,0b00011000,0b00011000,0b01111110,};
//potenziometro
int potenziometro=A0;
//servomotore
Servo servo;
int angle = -90;
int pos;
//pulsante
int pulsante1 =7;
int pulsante2 =2;
int stato_pulsante1;
int stato_pulsante2;
int count=0;
void setup() {
lc.shutdown(0, false); //posizioni della matrice a 0
lc.setIntensity(0, 0); //si regola l'intensità dei led della matrice
lc.clearDisplay(0); //la matrice parte con tutti i led spenti
pinMode(potenziometro, INPUT);
pinMode(croce, OUTPUT);
//servomotore
servo.attach(6);
servo.write(angle); //posiziono il servo
delay(1000);
//pulsante
pinMode(pulsante1, INPUT_PULLUP);
pinMode(pulsante2, INPUT_PULLUP);
}
void loop() {
int value=analogRead(potenziometro);
analogWrite(croce,value);
stato_pulsante1 = digitalRead(pulsante1);
stato_pulsante2 = digitalRead(pulsante2);
if(stato_pulsante2 ==0)
{
count=1;
}
if (count==1)
{
if (value>=0&value<=205)
{ for (int row = 0; row < 8; row++)
lc.setRow(0, row, croce[row]);
delay(1000);
}
if (value>205&value<=410)
{ for (int row = 0; row < 8; row++)
lc.setRow(0, row, cuore[row]);
delay(1000);
}
if (value>410&value<=615)
{ for (int row = 0; row < 8; row++)
lc.setRow(0, row, peso[row]);
delay(1000);
}
if (value>615&value<=820)
{ for (int row = 0; row < 8; row++)
lc.setRow(0, row, busta[row]);
delay(1000);
}
if (value>820&value<=1024)
{for (int row = 0; row < 8; row++)
lc.setRow(0, row, bicchiere[row]);
delay(1000);
}
}
else {
lc.clearDisplay(0);
}
if(stato_pulsante1 == 0)
{
servo.write(180);
}
}