int value = 0; // variable to keep the actual value int
int motorpin = 0; // motor connected to analog pin 9
void setup() {
// nothing for setup
}
void loop() {
for(value = 0 ; value <= 255; value+=5) // fade in (from min to max)
{
analogWrite(motorpin, value); // sets the value (range from 0 to 255)
delay(30); // waits for 30 milli seconds to see the dimming effect
}
for(value = 255; value >=0; value-=5) // fade out (from max to min)
{
analogWrite(motorpin, value);
delay(30);
}
}
Y tengo un problema: no funciona. No veo que error puede haber aparte del haber hecho mal las conexiones. ¿Me podeis decir donde conectar los cables para ver si estoy equivocado?
El codigo en cuestion lo saque de los ejemplos.
Estás usando un driver para el motor? un motor no se puede alimentar directamente desde el micro ya que éste requiere más intensidad de la que es capaz de proporcionar el puerto del microcontrolador, y lo único que puedes hacer es quema el micro si lo conectas directamente.
Maldita sea, gracias a dios que el micro sigue vivo. No tengo ni idea de que es un driver, he visto algo en internet (hace un minuto) pero no se cuanto me puede costar. Si ayuda estoy usando un motor DC (el tipico motor que cuando lo conectas a una pila da vueltas sin parar). Gracias por la ayuda.
Busca puente en H en google y verás que se usa para controlar un motor en dirección y velocidad, su precio es bajo, puedes comprar un l293 o l298 por unos pocos euros.
Si sólo quieres controlar la velocidad del motor con un sentido de giro constante te vale usar un simple transistor para conducir el motor, también tendrás que poner un diodo en antiparalelo con el motor para comerte los picos generados por la bobina por la fuerza contra electromotriz que pueden dañar el transistor.
No sé porque en las placas de los arduinos no han puesto una resistencia en serie con todas las salidas, ya que están destinados a gente con conocimientos de electrónica de todos los niveles ésto evitaría quemar micros, y más cuando estos son smds.. A lo único que perjudicaría sería al tiempo de conversión de los ADC pero mínimamente.
Con la resistencia en serie se evitarían posibles cortocircuitos como en el caso anterior del motor.
Googlea un poco sobre los motores y encontraras miles de ejemplos de como conexionarlo al micro.