MTobjets: Example 6
Event management for Uno, Nano, Mega
Bursts on an pin
Problem posed
See on a forum:
I want to have bursts from 1 to 5 positive inpulses on an pin, at a frequency between 2 and 3 Hz.
Complete program recommended
This program is completely under interruption, and releases loop which can be used to do something else.
// Generation of inpulse bursts on an output pin // from 1 to 5 inpulses to 2/3Hz // So maximum duration 2.5s -> repetition between 3 and 6s #include <MTobjects.h> // V1.0.6 See http://arduino.dansetrad.fr/en/MTobjects MTsoftPWM Bursts(LED_BUILTIN); // Set up void setup() { Bursts.stop(); // Stop because run in initialization. Could be done during its creation! } void loop() { // Prepare from 1 to 5 inpulses to 2 to 3 Hz long period = (300 + random(200))*1000 micro_seconds; // Between 0.3s and 0.5s Bursts.setPeriod(period); Bursts.setInpulse(period/2); long number_of_levels = (1 + random(5)) * 2; // A inpulse is 2 levels. Between 2 and 10 Bursts.setNumberOfLevels(number_of_levels levels_and_stop); // Start the burst Bursts.start(); // Space between two beginnings of bursts long wait = 3000 + random(3000) milli_seconds; // Between 3s and 6s delay(wait); // Bursts will occur during this instruction }
Result to the analyzer:
