Sei sulla pagina 1di 9

TABLA 5.1.

1: Especificaciones de los componentes


electricos
DESCRIPCIÓN CANT. Voltaje Amperaje Potencia Alto(mm) Ancho(mm) Largo(mm)
10W
Panel solar jD-RF900Plus, Longrange 1 5Ah potencia
5,6V (ajustable) 120 70 2
MINI SERVO 2 0.84W
4.8-6.0v 140 +/- 50 mA 20 22 7
11.1v /
Sensor Bateria 3s 500mAh 1
3Cell 5000mAh 55.5W 10 4 2
Arduino UNO 1
5.6v-22v 60-80A 5W 30 25 10
Tarjeta Receiver 10CH 2.4G AFHDS 2A 1
4.0V~6.5V 240mA 1.56W 10 8 2
Sensor de humedad Power Module 1
5.3V -45V 2.25A 1.25W 2,5 2,5 1
Leds 1
10V/2.0A 3,4 0,2 1 3 3
1 0,18W
Cables FC109 600TVL 1/3 Mini PAL/NTSC 6 ~ 30v DC 60mA

COMPLEMENTO SENSOR HUMEDAD FT952 5.8GHz 32CH 1 110mA +/-


200mW Mini FVT 6V~30V 10mA 3.3W 12 8 2
Resistencias 1 0.3W
3.3V 90mA 1 2 1
Programa opción 1

// Incluímos la librería para poder controlar el servo


#include <Servo.h>

// Constantes pines servos. OJO SALIDAS PWM


#define SERVO1 3
#define SERVO2 5

// Posiciones inicial y final de movimiento


#define POS_INICIAL 3
#define POS_FINAL 178

// Declaramos la variable para controlar los servos


Servo servoMotor1;
int posicion1 = POS_INICIAL;
Servo servoMotor2;
int posicion2 = POS_INICIAL;

// Tiempo en minutos para cada servo


int tiempo1 = 1;
int tiempo2 = 3;

// Tiempo base es un minuto en segundos


int contadorBase = 0;

void setup() {

// Iniciamos los servos


servoMotor1.attach(SERVO1);
servoMotor2.attach(SERVO2);
// Posición inicial
servoMotor1.write(posicion1);
posicion1 = POS_FINAL;
servoMotor2.write(posicion2);
posicion2 = POS_FINAL;

void loop() {

// Esperamos un minuto en dos tandas, máximo permitido el rango de un int


delay(3000);
delay(3000);
// Sumamos uno al contador base (a pasado un minuto más)
contadorBase++;

movimientoServo1();
movimientoServo2();

void movimientoServo1()
{
// Comprobamos si es múltiplo (módulo)
int modulo = (contadorBase) % tiempo1;

// Si es múltiplo movemos
if (modulo == 0)
{
// Movemos a la posición correspondiente
servoMotor1.write(posicion1);
// Alternamos posición
if (posicion1 == POS_INICIAL)
{
posicion1 = POS_FINAL;
}
else
{
posicion1 = POS_INICIAL;
}
}
}

void movimientoServo2()
{
// Comprobamos si es múltiplo (módulo)
int modulo = (contadorBase) % tiempo2;

// Si es múltiplo movemos
if (modulo == 0)
{
// Movemos a la posición correspondiente
servoMotor2.write(posicion2);

// Alternamos posición
if (posicion2 == POS_INICIAL)
{
posicion2 = POS_FINAL;
}
else
{
posicion2 = POS_INICIAL;
}
}
}

Programa opción 2
// Incluímos la librería para poder controlar el servo
#include <Servo.h>

// Declaramos la variable para controlar el servo


Servo servoMotor;

void setup() {
// Iniciamos el monitor serie para mostrar el resultado
Serial.begin(9600);

// Iniciamos el servo para que empiece a trabajar con el pin 9


servoMotor.attach(9);
}

void loop() {

// Desplazamos a la posición 0º
servoMotor.write(0);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 22º


servoMotor.write(22);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 45º


servoMotor.write(45);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 67º


servoMotor.write(67);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 90º


servoMotor.write(90);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 135º


servoMotor.write(135);
// Esperamos 1 segundo
delay(1000);

// Desplazamos a la posición 180º


servoMotor.write(180);
// Esperamos 1 segundo
delay(1000);
}
Programa Final
// Incluímos la librería para poder controlar el servo
#include <Servo.h>

// Declaramos la variable para controlar el servo


Servo servoMotor;

void setup() {
// Iniciamos el monitor serie para mostrar el resultado
Serial.begin(9600);

// Iniciamos el servo para que empiece a trabajar con el pin 9


servoMotor.attach(9);

// Inicializamos al ángulo 0 el servomotor


servoMotor.write(0);
}

void loop() {

// Vamos a tener dos bucles uno para mover en sentido positivo y otro en sentido negativo
// Para el sentido positivo
for (int i = 0; i <= 180; i++)
{
// Desplazamos al ángulo correspondiente
servoMotor.write(i);
// Hacemos una pausa de 25ms
delay(1000);
}

// Para el sentido negativo


for (int i = 179; i > 0; i--)
{
// Desplazamos al ángulo correspondiente
servoMotor.write(i);
// Hacemos una pausa de 25ms
delay(1000);
}
}

https://programarfacil.com/blog/arduino-blog/controlar-tiempos-arduino/

https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/

Potrebbero piacerti anche