Add Arduino Sketch

This commit is contained in:
CPD 2025-01-17 15:58:22 +01:00
parent a92ce493dc
commit f7e85f6e73

View File

@ -0,0 +1,72 @@
/**
* Matthias Quintern, 2025
*
* Simple Arduino program that listens via serial for single byte commands to control a ThorLabs LEDD1B
* Commands:
* - 'i': Identify - Prints "Arduino Nano CPD <version>"
* - '0': Turn the LED off
* - '1': Turn the LED on
*/
const int LEDPIN = 11;
const int VERSION = 1;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
Serial.begin(9600, SERIAL_8N1); //USB-Prog. Port
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
pinMode(LEDPIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, LOW);
if (Serial.available() <= 0) {
return;
}
char command = Serial.read();
digitalWrite(LED_BUILTIN, HIGH);
switch (command) {
case 'i':
identify();
break;
case '1':
Serial.println("LED ON");
led_on();
break;
case '0':
Serial.println("LED OFF");
led_off();
break;
case '\n':
break;
default:
blink_internal_led(5);
break;
}
}
void blink_internal_led(unsigned N) {
unsigned long duration = 100;
for (unsigned i = 0; i < N; i++) {
digitalWrite(LED_BUILTIN, HIGH);
delay(duration);
digitalWrite(LED_BUILTIN, LOW);
delay(duration);
}
}
void led_on() {
digitalWrite(LEDPIN, HIGH);
}
void led_off() {
digitalWrite(LEDPIN, LOW);
}
void identify() {
Serial.print("Arduino Nano CPD ");
Serial.print(VERSION);
Serial.println("");
}