1- /* This sketch shows how to filter signals */
1+ /* This sketch shows how to remove noise from a signal */
22
3- // ---- Create servo object to generate PWM signals ---
4- #include < Servo.h>
5- Servo servo;
6-
7- // ----------- Signal deadband and calibration --------
83#include < PulseInput.h>
9- volatile unsigned int input; /* variable is required to capture signal */
104
115#define BAND 12 /* Deadband. Changes in signal within this band are ignored.
126 Large values result in a steadier signal, at cost of lower precision */
13-
7+
8+ volatile unsigned int input; /* variable is required to capture signal */
149PulseFilter <&input, BAND> filter;
1510
1611// Simpler form:
1712// PulseFilter <&input> filter; /* The filter defaults to a deadband of 4 if none is specified */
1813
14+ // --------------- Generate PWM signal ----------------
15+
16+ #define OUTPUT_PIN 3 // PWM-capable pin
17+ #define DUTY_CYCLE 125 // Initial PWM value
18+
1919// ----------------------------------------------------
2020
2121void setup () {
2222 Serial.begin (9600 );
2323
24- // PWM output at pin 2
25- servo.attach (2 );
26- servo.writeMicroseconds (1000 ); // initial signal value
24+ // generate PWM signal
25+ analogWrite (OUTPUT_PIN, DUTY_CYCLE);
2726
2827 // assign variables to receive signals
2928 attachPulseInput (8 , input);
@@ -37,8 +36,8 @@ void setup() {
3736
3837void loop () {
3938 // generate variable signal:
40- int target = analogRead (A0) + 1000 ; // read potentiometer from A0
41- servo. writeMicroseconds ( target);
39+ float target = analogRead (A0) * 255.0 / 1024.0 ; // read potentiometer from A0
40+ analogWrite (OUTPUT_PIN, target);
4241
4342 // display comparison:
4443 Serial.print ( " Raw: " );
0 commit comments