106 lines
2.8 KiB
C++
106 lines
2.8 KiB
C++
/**
|
|
* @file testing.ino
|
|
* Project axefx.de MIDI Borad TWO
|
|
* @brief Testing-Tool for test all your switches, leds and
|
|
* LCD-Display (if you'll use one).
|
|
* It will turn on and of all your LEDs. After it,
|
|
* you can test your switches to light up the LEDs manually.
|
|
* Additionally you can see some Informations on your LCD-Display
|
|
* and it writes the same text in the serial monitor.
|
|
* @version 1.0.0
|
|
* @author Bastian Buehrig
|
|
* @date 16/02/15
|
|
* license GPL axefx.de - 2015
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
|
|
// LCD-Display includes
|
|
#if USE_LCD==1
|
|
#include <LiquidCrystal.h>
|
|
LiquidCrystal lcd(LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
|
|
#endif
|
|
|
|
|
|
// Pin-Definitions - you have to modify this list, if you like to use more or less than 23 Switches!
|
|
byte swt_pins[SWT_MAX] = { SWT01, SWT02, SWT03, SWT04, SWT05, SWT06, SWT07, SWT08, SWT09, SWT10,
|
|
SWT11, SWT12, SWT13, SWT14, SWT15, SWT16, SWT17, SWT18, SWT19, SWT20,
|
|
SWT21, SWT22, SWT23 }; // SWT24, SWT25, SWT26, SWT27, SWT28
|
|
|
|
byte led_pins[SWT_MAX] = { LED01, LED02, LED03, LED04, LED05, LED06, LED07, LED08, LED09, LED10,
|
|
LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20,
|
|
LED21, LED22, LED23 }; // LED24, LED25, LED26, LED27, LED28
|
|
|
|
|
|
|
|
/**
|
|
* Function to initialize the pin-modes and
|
|
* switch on and off shortly all LEDs.
|
|
*
|
|
*/
|
|
void setup() {
|
|
// Init Serial Monitor for Informations...
|
|
Serial.begin(9600);
|
|
|
|
|
|
#if USE_LCD==1
|
|
// set up the LCD's number of columns and rows:
|
|
lcd.begin(16, 2);
|
|
#endif
|
|
|
|
printInfo("Initialisation...");
|
|
|
|
|
|
// Setting Pin-Modes
|
|
for(byte i=0; i < SWT_MAX; i=i+1) {
|
|
pinMode(swt_pins[i], INPUT_PULLUP);
|
|
pinMode(led_pins[i], OUTPUT);
|
|
}
|
|
|
|
|
|
// Turn LED on, then off
|
|
for(byte i=0; i < SWT_MAX; i=i+1) {
|
|
printInfo("LED " + String(i+1));
|
|
|
|
digitalWrite(led_pins[i], HIGH); // turn the LED on (HIGH is the voltage level)
|
|
delay(100); // wait for a second
|
|
digitalWrite(led_pins[i], LOW); // turn the LED off by making the voltage LOW
|
|
delay(100);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Main Loop-Function. Read out the Switch-States and
|
|
* if you press a switch, the Switch LED will be switch on
|
|
* during you are pressing the switch.
|
|
*
|
|
*/
|
|
void loop() {
|
|
|
|
for(byte i=0; i < SWT_MAX; i=i+1) {
|
|
byte actState = digitalRead(swt_pins[i]);
|
|
digitalWrite(led_pins[i], !actState);
|
|
|
|
if(!actState) {
|
|
printInfo("Switch " + String(i+1) + " pressed!");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Function to print out informations to Serial-Monitor and LCD-Dsiplay
|
|
*
|
|
* @param infoText Text to print out
|
|
*/
|
|
void printInfo(String infoText) {
|
|
Serial.println(infoText);
|
|
|
|
#if USE_LCD==1
|
|
lcd.print(infoText);
|
|
#endif
|
|
}
|