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.
48 lines
1.6 KiB
C++
48 lines
1.6 KiB
C++
/*
|
|
LED PWM
|
|
Uses 2 pots to control the duty cycle of a Pulse Width Modulation
|
|
with resulting values used to set both the LED and audio signal
|
|
|
|
<---- pot 0 ----> <---- pot 0 ---->
|
|
| | |
|
|
| | |
|
|
| | |
|
|
<-- pot 1 --> <--- ...
|
|
*/
|
|
|
|
#define LED (13)
|
|
#define POT_1 (0)
|
|
#define POT_2 (1)
|
|
#define SPEAKER (11)
|
|
|
|
float delay_on;
|
|
float delay_off;
|
|
|
|
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(SPEAKER, OUTPUT);
|
|
}
|
|
|
|
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);
|
|
|
|
// Parameters for the PWM
|
|
digitalWrite(LED, HIGH); // turn the LED on
|
|
digitalWrite(SPEAKER, HIGH); // set max audio signal
|
|
delay(delay_on); // wait for delay_on ms
|
|
digitalWrite(LED, LOW); // turn the LED off
|
|
digitalWrite(SPEAKER, LOW); // audio flat line
|
|
delay(delay_off); // wait for delay_off ms
|
|
}
|