Vous êtes sur la page 1sur 3

Programación en Arduino

#include <OneWire.h> // Se instancia la librería OneWire


s
#include <DallasTemperature.h> // Se instancia la librería Dallas temerature

OneWire ourWire(2); //Se establece el pin 2 como bus OneWire


DallasTemperature sensors(&ourWire); //Se declara una variable u objeto para
nuestro sensor

//declaracion de variables
float temp;
int pwm = 3;

void setup() {
Serial.begin(9600); // Se inicializa la comunicación serie a una velocidad de
9600 bauds
pinMode(pwm, OUTPUT); // Se Establece el pin pwm = 3 como salida
sensors.begin(); //Se inicia el sensor
}

void loop() {
if (Serial.available())
{
if (Serial.read() == 'a') {
int recibe = Serial.parseInt();
if (Serial.read() == 'b') {
funcion(recibe);
}
}
}
sensors.requestTemperatures(); //Se envía el comando para leer la temperatura
temp = sensors.getTempCByIndex(0); //Se obtiene la temperatura en ºC
Serial.print(temp);//envio a labview mediante comunicacion serial
delay(100);
}
void funcion (int recibe) {
int pwm1 = map(recibe, 99, 0, 255, 0);
if (pwm1 >= 98) {
pwm1 = 255;
}
analogWrite(pwm, pwm1);
// Serial.println(recibe);
}

Como primer paso en el IDE de Arduino se crea un proyecto nuevo y por la parte superior se
empieza por la instanciación de las librerías que serán utilizadas en el proyecto con el comando
#include <Nombre_Libreria.h> .

#include <OneWire.h> // Se instancia la librería OneWire


#include <DallasTemperature.h> // Se instancia la librería Dallas temerature

Se ha usado la librería OneWire.h que sirve para establecer la comunicación entre el Arduino y
el sensor de temperatura DS18B20 y la librería DallasTemperature.h que sirve para la
interpretación de los datos de la temperatura.

A continuación, se inicia objetos necesarios de las librerías, se establece por cual pin se realizará
la comunicación con el sensor y se crea un objeto que recibirá los valores de temperatura.
OneWire
7 ourWire(2); //Se establece el pin 2 como bus OneWire
DallasTemperature sensors(&ourWire); //Se declara una variable u objeto para
nuestro sensor
Se realiza declaración de variables necesarias para el programa en este caso temp que guardara
los valores de temperatura medidos, y pwm que se asigna al pin Digital 3
//declaracion de variables
float temp;
int pwm = 3;

En la función setup el cual se ejecuta primero en el programa y una sola vez es utilizado para
definir valores que solo deben ser definidos una vez.

void setup() {
Serial.begin(9600);//Se inicializa la comunicación serie velocidad de 9600 baud
pinMode(pwm, OUTPUT); // Se Establece el pin pwm = 3 como salida
sensors.begin(); //Se inicia el sensor
}

Se usa los comandos:

 Serial.begin(Velocidad_en_bauds) para inicializar la comunicación serie, que será


utilizada para comunicarse con LABVIEW.
 pinMode(pin, MODE) en este caso es utilizado para definir el pin pwm como salida.

 sensors.begin() se encarga de inicializar la comunicación de arduino con el sensor de


temperatura.

En la función loop se escriben comandos que se ejecutaran en forma de bucle, por lo que
aquí se escribe todo el código

void loop() {
if (Serial.available())
{
if (Serial.read() == 'a') {
int recibe = Serial.parseInt();
if (Serial.read() == 'b') {
7 funcion(recibe);
}
}
}
sensors.requestTemperatures(); //Se envía el comando para leer la temperatura
temp = sensors.getTempCByIndex(0); //Se obtiene la temperatura en ºC
Serial.print(temp);//envio a labview mediante comunicacion serial
delay(100);
}

if (Serial.available())
{
if (Serial.read() == 'a') {
int recibe = Serial.parseInt();
if (Serial.read() == 'b') {
funcion(recibe);
}
}
}
Serial.available() este comando es utilizado para comprobar si existe comunicación serie
con LABVIEW y en caso de que si Serial.read(), comprueba si existe en carácter ‘a’ el cual es
el encabezado de la trama establecida, y se guarda en la variable recibe con el comando
Serial.parseInt() pasa los siguientes valores de cadena a número entero hasta que reciba el
carácter ‘b’ que indica la finalización, de la trama; con el comando funcion(recibe) envía el
valor de la variable recibe hacia la función ‘funcion’.

sensors.requestTemperatures(); //Se envía el comando para leer la temperatura


temp = sensors.getTempCByIndex(0); //Se obtiene la temperatura en ºC
Serial.print(temp);//envio a labview mediante comunicacion serial
delay(100);

Con el comando sensors.requestTemperatures() se realiza una petición de la medición de


temperatura al sensor.

Se guarda en la variable temp el valor de la temperatura en ºC con el comando


sensors.getTempCByIndex(0).

Con el comando Serial.print(temp) se envía el valor de la variable temp por comunicación


serie hacia LABVIEW.

Con delay(100), se realiza una pausa en el programa de 100 milisegundos.

void funcion (int recibe) {


int pwm1 = map(recibe, 99, 0, 255, 0);
if (pwm1 >= 98) {
pwm1 = 255;
}
analogWrite(pwm, pwm1);
// Serial.println(recibe);
}

Al final la función ‘funcion’ establece en la variable pwm1 por medio del comando
map(recibe, 99, 0, 255, 0); el valor de la variable recibe recibida desde LabVIEW con valores
entre 0 y 99 a valores de 0 a 255 que son los valores que maneja Arduino para la salida del
pwm.

Con el comando analogWrite(pwm, pwm1) se escribe en el pin 3 el valor del pwm.

Vous aimerez peut-être aussi