Generar pulsos arduino

Buenas, tengo pensando en hacer un proyecto, que sea capaz de generar 200 pulsos por segundos, con un arduino, este debe ser regulable y que sea mediante un switch, es decir, si se presiona el switch empezara a dar los 200 p/s, en caso contrario, no entregara nada. Bueno, para esto necesito saber como hacerlo… Que me guien. Gracias. :slight_smile:

La función Tone() puede llegar a servirte.

Alguna otra solución, todavía no entiendo y eso que he buscado.

Una de las formas mas simples es usar la librería TimerOne que te permite crear pulsos del Periódo de tu agrado y con una PWM tambien configurable. En tu caso usa una PWM al 50% y listo.

El ejemplo FanSpeedy.pde es un ejemplo de lo que digo.

#include <TimerOne.h>

// This example creates a PWM signal with 25 kHz carrier.
//
// Arduino's analogWrite() gives you PWM output, but no control over the
// carrier frequency.  The default frequency is low, typically 490 or
// 3920 Hz.  Sometimes you may need a faster carrier frequency.
//
// The specification for 4-wire PWM fans recommends a 25 kHz frequency
// and allows 21 to 28 kHz.  The default from analogWrite() might work
// with some fans, but to follow the specification we need 25 kHz.
//
// http://www.formfactors.org/developer/specs/REV1_2_Public.pdf
//
// Connect the PWM pin to the fan's control wire (usually blue).  The
// board's ground must be connected to the fan's ground, and the fan
// needs +12 volt power from the computer or a separate power supply.

const int fanPin = 4;

void setup(void)
{
  Timer1.initialize(40);  // 40 us = 25 kHz
  Serial.begin(9600);
}

void loop(void)
{
  // slowly increase the PWM fan speed
  //
  for (float dutyCycle = 30.0; dutyCycle < 100.0; dutyCycle++) {
    Serial.print("PWM Fan, Duty Cycle = ");
    Serial.println(dutyCycle);
    Timer1.pwm(fanPin, (dutyCycle / 100) * 1023);
    delay(500);
  }
}