You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.8 KiB
C++

/*
LED PWM
Uses 2 pots to control the duty cycle of a Pulse Width Modulation
<---- pot 0 ----> <---- pot 0 ---->
| | |
| | |
| | |
<-- pot 1 --> <--- ...
*/
#define LED (13)
#define POT_1 (0)
#define POT_2 (1)
#define POT_3 (2)
#define SPEAKER (11)
float delay_on;
float delay_off;
float delay_div;
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on the nano board:
pinMode(LED, OUTPUT);
// initialize Pin 11 as audio out
pinMode(LED, SPEAKER);
}
void loop() {
// We read the value of the pots at the beginning of the loop
// and store them as integer variables (declared at the top)
//delay_on = analogRead(POT_1);
//delay_off = analogRead(POT_2);
//
// But in meergranen PCB 1.0, the pots are wired the wrong way
// So we need to adjust that :)
delay_on = 1023 - analogRead(POT_1);
delay_off = 1023 - analogRead(POT_2);
// We also read pot 3 value that we will use to control a bit
// the delay to reach audible range
//delay_div = 1023 - analogRead(POT_3);
//
// But meergranen 1.0
delay_div = analogRead(POT_3);
// Parameters for the PWM
digitalWrite(LED, HIGH); // turn the LED on
digitalWrite(SPEAKER, HIGH); // turn the LED on
delay(delay_on/delay_div); // wait for delay_on ms
digitalWrite(LED, LOW); // turn the LED off
digitalWrite(SPEAKER, LOW); // turn the LED off
delay(delay_off/delay_div); // wait for delay_off ms
}