Добавлена команда для зуммера

This commit is contained in:
WarL0ck 2019-03-03 11:34:25 +07:00
parent d2b04d663e
commit a6e937e6d3

161
UsbTitle/UsbTitle.ino Executable file → Normal file
View File

@ -1,78 +1,85 @@
#include <DigiUSB.h> #include <DigiUSB.h>
#include <EEPROM.h> #include <EEPROM.h>
#include "LedControl.h" #include "LedControl.h"
/* /*
Now we need a LedControl to work with. Now we need a LedControl to work with.
pin 2 is connected to the DataIn pin 2 is connected to the DataIn
pin 1 is connected to the CLK pin 1 is connected to the CLK
pin 0 is connected to LOAD pin 0 is connected to LOAD
We have only a single MAX72XX. We have only a single MAX72XX.
*/ */
LedControl lc=LedControl(2,1,0,1); LedControl lc=LedControl(2,1,0,1);
void setup() { void setup() {
DigiUSB.begin(); DigiUSB.begin();
/* /*
The MAX72XX is in power-saving mode on startup, The MAX72XX is in power-saving mode on startup,
we have to do a wakeup call we have to do a wakeup call
*/ */
lc.shutdown(0,false); lc.shutdown(0,false);
/* Set the brightness to a medium values */ /* Set the brightness to a medium values */
lc.setIntensity(0,0); lc.setIntensity(0,0);
/* and clear the display */ /* and clear the display */
lc.clearDisplay(0); lc.clearDisplay(0);
delay(1000); pinMode(3, OUTPUT);
} delay(1000);
}
void loop() {
byte lastRead; void loop() {
byte lastCmd = 0xFF; byte lastRead;
byte value; byte lastCmd = 0xFF;
DigiUSB.refresh(); byte value;
while (true) { // loop forever DigiUSB.refresh();
if (DigiUSB.available()) { while (true) { // loop forever
// something to read if (DigiUSB.available()) {
lastRead = DigiUSB.read(); // something to read
if (lastRead >= 0x20 && lastRead<=0x7F){ lastRead = DigiUSB.read();
if (lastCmd == 0xFF){ // Если ранее команд не было, значит считываем команду if (lastRead >= 0x20 && lastRead<=0x7F){
lastCmd = lastRead; if (lastCmd == 0xFF){ // Если ранее команд не было, значит считываем команду
}else{ // команда есть, операнд считали, выполняем lastCmd = lastRead;
if (lastCmd >=0x41 && lastCmd <=0x48){ // команда установки в сегменте нужного кода ABCDEFGH }else{ // команда есть, операнд считали, выполняем
value = EEPROM.read(lastRead); if (lastCmd >=0x41 && lastCmd <=0x48){ // команда установки в сегменте нужного кода ABCDEFGH
lc.setRow(0, 7-(lastCmd-0x41), value+0x80); value = EEPROM.read(lastRead);
}else if (lastCmd >=0x61 && lastCmd <=0x68){ // команда установки в сегменте нужного кода abcdefgh lc.setRow(0, 7-(lastCmd-0x41), value+0x80);
value = EEPROM.read(lastRead); }else if (lastCmd >=0x61 && lastCmd <=0x68){ // команда установки в сегменте нужного кода abcdefgh
lc.setRow(0, 7-(lastCmd-0x61), value); value = EEPROM.read(lastRead);
}else if (lastCmd == 0x69){ // команда яркости i 0..9abcdef lc.setRow(0, 7-(lastCmd-0x61), value);
if (lastRead >=0x30 && lastRead <= 0x39){ }else if (lastCmd == 0x69){ // команда яркости i 0..9abcdef
lc.setIntensity(0, lastRead-0x30); if (lastRead >=0x30 && lastRead <= 0x39){
}else if (lastRead >=0x61 && lastRead <= 0x66){ lc.setIntensity(0, lastRead-0x30);
lc.setIntensity(0, lastRead-0x57); }else if (lastRead >=0x61 && lastRead <= 0x66){
} lc.setIntensity(0, lastRead-0x57);
}else if (lastCmd == 0x6C){ // команда количества разрядов l 0..7 }
if (lastRead >=0x30 && lastRead <= 0x37){ }else if (lastCmd == 0x6C){ // команда количества разрядов l 0..7
lc.setScanLimit(0, lastRead-0x30); if (lastRead >=0x30 && lastRead <= 0x37){
} lc.setScanLimit(0, lastRead-0x30);
}else if (lastCmd == 0x78){ // команда очистки экрана x0 }
if (lastRead == 0x30){ }else if (lastCmd == 0x78){ // команда очистки экрана x0
lc.clearDisplay(0); if (lastRead == 0x30){
} lc.clearDisplay(0);
}else if (lastCmd == 0x73){ // команда s0..1 }
if (lastRead == 0x30){ }else if (lastCmd == 0x73){ // команда s0..1
lc.shutdown(0,false); if (lastRead == 0x30){
}else{ lc.shutdown(0,false);
lc.shutdown(0,true); }else{
} lc.shutdown(0,true);
} }
lastCmd = 0xFF; }else if (lastCmd == 0x7a){ // команда z0..f
} if (lastRead == 0x30){
}else{ noTone(3);
lastCmd = 0xFF; }else{
} tone(3, 100*(lastRead-0x30));
} }
// refresh the usb port for 10 milliseconds }
DigiUSB.delay(10); lastCmd = 0xFF;
} }
}else{
lastCmd = 0xFF;
}
}
// refresh the usb port for 10 milliseconds
DigiUSB.delay(10);
}
} }