Al girar el potenciometro en un sentido, se encienden los leds uno a uno, y cuando se gira en sentido contrario se van apagando los leds uno a uno. Haga click en imagen para agrandarla y observar las conexiones.
Programación en Arduino
const int led1 = 4; //Led conectado al pin4
const int led2 = 3; //Led conectado al pin3
const int led3 = 2; //Led conectado al pin2
const int pot = 0; // el pot está conectado al pinA0
int brillo=0; // variable para el brillo
int xtemp=0;
int xop=1;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT); // declaramos el led como salida
pinMode(led2, OUTPUT); // declaramos el led como salida
pinMode(led3, OUTPUT); // declaramos el led como salida
/* Los pin analógicos declaran como entrada automáticamente */
}
void loop() {
/* Leemos el valor del potenciometro divididos entre 4 ya que
solo se pueden usar valores entre 0 y 255 en analog Write */
brillo = analogRead(pot)/4;
/*AnalagoWrite recibe dos valores, el pin a usar y la intensidad del voltaje los valores de
voltaje van de 0 a 255 */
Serial.println(brillo);
Serial.println(xop);
Serial.println(xtemp);
if (xtemp<=brillo)
{
xop=1; //incrementa
}
else
{
xop=2; //decrementa
}
xtemp= brillo;
if (xop==1){
if (brillo>0 && brillo<100){
digitalWrite(led1,1);
}
else if (brillo>=100 && brillo<200)
{
digitalWrite(led2,1);
}
else if (brillo>=200)
{
digitalWrite(led3,1);
}
}else{
if (brillo>=0 && brillo<100){
digitalWrite(led1,0);
digitalWrite(led2,0);
}
else if (brillo>=100 && brillo<200)
{
digitalWrite(led2,0);
digitalWrite(led3,0);
}
else if (brillo<=225)
{
digitalWrite(led3,0);
}
}
}
Blog de programación de lenguajes Java, C#, VBasic y PHP con base de datos SQL Server, MySQL y Oracle.
domingo, 25 de diciembre de 2016
lunes, 19 de diciembre de 2016
Programando con arduino - 2 botones y un ServoMotor
Diseñando el proyecto con Circuits.io de AutoDesk
(Haga clic en cada imagen para agrandarla)
Programación del proyecto
#include <Servo.h> // Librería
Servo myservo;
//Definición de variables
int pos=0;
int adelante=0;
int atras=0;
void setup() {
Serial.begin(9600);
myservo.attach(9);
// Inicializa pin
pinMode(3, INPUT);
pinMode(5, INPUT);
}
void loop() {
// Lee entrada de pulsación de los botones
adelante = digitalRead(5);
atras = digitalRead(3);
if (adelante == 1){
pos = pos+1;
if (pos>=180){
pos=180;
}
}
if (atras == 1){
pos=pos-1;
if (pos<=0){
pos=0;
}
}
myservo.write(pos);
delay(15);
}
Suscribirse a:
Entradas (Atom)