#include "LedControl.h"
#define DIN 11
#define CS 10
#define CLK 9
#define Moduli 1
//matriceLED
LedControl matrix = LedControl(DIN, CLK, CS, Moduli);
byte sorriso[8]={0b00000000,0b00000000,0b00100100,0b00000000,0b01000010,0b00111100,0b00000000,0b00000000};
byte tristezza[8]={0b00000000,0b00000000,0b00100100,0b00000000,0b00111100,0b01000010,0b00000000,0b00000000};
byte cuore[8]={0b00000000,0b01100110,0b10011001,0b10000001,0b10000001,0b01000010,0b00100100,0b00011000};
byte poker[8]={0b00000000,0b00000000,0b00100100,0b00000000,0b00000000,0b01111110,0b00000000,0b00000000};
byte ok[8]={ 0b00000000,0b00000000,0b01111010,0b01011100,0b01011100,0b01111010,0b00000000,0b00000000};
//potenziometro
int potenziometro = A0;
//bottone
int bottone = 7;
int stato_pulsante;
void setup() {
//definisco comportamento pin
pinMode(bottone, INPUT_PULLUP);
pinMode(potenziometro,INPUT);
Serial.begin(9600);
//regolo matrice LED
matrix.shutdown(0, false); //Il modulo MAX7219 di default, appena viene alimentato, è in standby e deve essere attivato, il numero indica il numero del modulo, il primo della fila è lo O
matrix.setIntensity(0, 0); //regola l’intensità luminosa dei LED Il valore va da 0 a 15
matrix.clearDisplay(0);
}
void loop() {
stato_pulsante = digitalRead(bottone);
int valore = analogRead(potenziometro);
Serial.println(valore);
if (stato_pulsante == 1) { //se premo il pulsante a seconda del valore letto sul potenziometro cambiano le emoji da inviare
if (valore>0&valore<=255) {
for (int row = 0; row < 8; row++) {
matrix.setRow (0, row, sorriso[row]);
}
delay(10);
}
else {
}
if (valore>255&valore<=510) {
for (int row = 0; row < 8; row++) {
matrix.setRow (0, row, tristezza[row]);
}
delay(10);
}
else {
}
if (valore>510&valore<=765) {
for (int row = 0; row < 8; row++) {
matrix.setRow (0, row, cuore[row]);
}
delay(10);
}
else {
}
if (valore>765&valore<=1023) {
for (int row = 0; row < 8; row++) {
matrix.setRow (0, row, poker[row]);
}
delay(10);
}
else {
}
}
else if (stato_pulsante == 0) {
for (int row = 0; row < 8; row++) {
matrix.setRow (0, row, ok[row]);
}
delay(1000);
matrix.clearDisplay(0);
delay(100000);
}
}