Arduino Macro Pad: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica Etichetta: Editor wikitesto 2017 |
→Codice: Riordino |
||
Riga 21:
== Codice ==
=== Programma principale ===
Come prima cosa includiamo le librerie necessarie per il funzionamento dello sketch<syntaxhighlight lang="c++" line="1">
#include <Keyboard.h> //Libreria utilizzata per 'simulare' la pressione di tasti su una tastiera fisica
Line 27 ⟶ 30:
#include <Adafruit_GFX.h> // le due librerie di Adafruit sono entrambe necessarie per il funzionamento del display OLED
#include <Adafruit_SSD1306.h>
</syntaxhighlight>
#include <Define.h>
//Variabili e constanti per il display OLED▼
#define SCREEN_WIDTH 128 //larghezza del display OLED▼
#define SCREEN_HEIGHT 64 //altezza del display OLED▼
#define OLED_RESET 4▼
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);▼
//Costanti per la libreria Keypad.h▼
const byte ROWS = 3;▼
const byte COLS = 4;▼
char keys[ROWS][COLS] = {▼
{'1', '2', '3', '4'},▼
{'5', '6', '7', '8'},▼
{'9', '0', 'A', 'B'},▼
};▼
byte rowPins[ROWS] = {7, 8, 9 };▼
byte colPins[COLS] = {10, 16, 14, 15};▼
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );▼
//Varibili per la selezione dei profili Macro▼
unsigned int ProfileSelect = 1;▼
unsigned int profiles = 2;▼
unsigned int buttonpress = 0;▼
//Variabili e constanti per il funzionamento dell'encoder▼
#define CLK 4 //Pin di collegamento di CLK▼
#define DT 5 //Pin di collegamento di DT▼
#define SW 6 //Pin di collegamento di SW▼
int counter = 1; //Variabile counter▼
int currentStateCLK; //Variabili per il monitoraggio di CLK▼
int lastStateCLK;▼
unsigned long lastButtonPress = 0; //Variabile per il monitoraggio della presisone del pulsante ▼
int pressedKey = ' '; //Variabile per il carattere premuto sul keypad▼
</syntaxhighlight>Dopodiché proseguiamo con la scrittura del blocco <code>setup</code>:<syntaxhighlight lang="c++" line="1" start="7">
void setup() {
Line 895 ⟶ 861:
</syntaxhighlight>
=== Definizione delle variabili globali ===
Nel file <code>Define.ino</code> sono riportate tutte le variabili globali utilizzate dal display, dalla tastiera, dall'encoder, oltre ad alcune variabili di sistema richiamate nel programma principale.<syntaxhighlight lang="c++" line="1">
▲//Variabili e constanti per il display OLED
▲#define SCREEN_WIDTH 128 //larghezza del display OLED
▲#define SCREEN_HEIGHT 64 //altezza del display OLED
▲#define OLED_RESET 4
▲Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
▲//Costanti per la libreria Keypad.h
▲const byte ROWS = 3;
▲const byte COLS = 4;
▲char keys[ROWS][COLS] = {
▲ {'1', '2', '3', '4'},
▲ {'5', '6', '7', '8'},
▲ {'9', '0', 'A', 'B'},
▲};
▲byte rowPins[ROWS] = {7, 8, 9 };
▲byte colPins[COLS] = {10, 16, 14, 15};
▲Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
▲//Varibili per la selezione dei profili Macro
▲unsigned int ProfileSelect = 1;
▲unsigned int profiles = 2;
▲unsigned int buttonpress = 0;
▲//Variabili e constanti per il funzionamento dell'encoder
▲#define CLK 4 //Pin di collegamento di CLK
▲#define DT 5 //Pin di collegamento di DT
▲#define SW 6 //Pin di collegamento di SW
▲int counter = 1; //Variabile counter
▲int currentStateCLK; //Variabili per il monitoraggio di CLK
▲int lastStateCLK;
▲unsigned long lastButtonPress = 0; //Variabile per il monitoraggio della presisone del pulsante
▲int pressedKey = ' '; //Variabile per il carattere premuto sul keypad
</syntaxhighlight>
== Conclusioni==
|