Sei sulla pagina 1di 5

Prctica 2

Arduino: Control de 2 motores con puente H y


monitor serial






Mecatrnica
Integrantes del equipo:
Huesca Zurita Juan Carlos
Humblot Nio Patrice Xavier
Quevedo Garay Francisco
Rangel Peuelas Daniel Ramn
Objetivo:
Dar un repaso la programacin en la plataforma Arduino
Marco Terico:
Lenguaje de programacin Arduino
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el
lenguaje de programacin de alto nivel Processing. Sin embargo, es posible utilizar otros
lenguajes de programacin y aplicaciones populares en Arduino,21 debido a que Arduino
usa la transmisin serial de datos soportada por la mayora de los lenguajes mencionados.
Para los que no soportan el formato serie de forma nativa, es posible utilizar software
intermediario que traduzca los mensajes enviados por ambas partes para permitir una
comunicacin fluida
Funciones bsicas y operadores
Arduino est basado en C y soporta todas las funciones del estndar C y algunas de C++.22
A continuacin se muestra un resumen con la estructura y sintaxis del lenguaje Arduino:

Sintaxis Bsica
Delimitadores:;, {}
Comentarios: //, /* */
Cabeceras: #define, #include
Operadores aritmticos: +, -, *, /, %
Asignacin: =
Operadores de comparacin: ==, !=, <, >, <=, >=
Operadores Booleanos: &&, ||, !
Operadores de acceso a punteros: *, &
Operadores de bits: &, |, ^, ~, <<, >>
Operadores compuestos:
Incremento y decremento de variables: ++, --
Asignacin y operacin: +=, -=, *=, /=, &=, |=
Estructuras de control
Condicionales: if, if...else, switch case
Bucles: for, while, do... while
Bifurcaciones y saltos: break, continue, return, goto
Variables
En cuanto al tratamiento de las variables tambin comparte un gran parecido con el
lenguaje C.
Constantes
HIGH/LOW: representan los niveles alto y bajo de las seales de entrada y salida.
Los niveles altos son aquellos de 3 voltios o ms.
INPUT/OUTPUT: entrada o salida.
false (falso): Seal que representa al cero lgico. A diferencia de las seales
HIGH/LOW, su nombre se escribe en letra minscula.
true (verdadero): Seal cuya definicin es ms amplia que la de false. Cualquier
nmero entero diferente de cero es "verdadero", segn el lgebra de Boole, como en
el caso de -200, -1 o 1. Si es cero, es "falso".
Tipos de datos
void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float,
double, string, array.
Conversin entre tipos
Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una
variable convertida en el tipo deseado
char(), byte(), int(), word(), long(), float()
Cualificadores y mbito de las variables
static, volatile, const
Utilidades
sizeof()

Cdigo

#include <stdio.h>
#include <string.h>

char inputString[20];
boolean stringComplete = false;
char varx[35];
int x[6]={0,0,0,0,0,0};
int i=0, j=0;

void setup()
{
Serial.begin(9600);
Serial.print("Puerto Listo");
analogWriteResolution(12);
analogReadResolution(12);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
}

void loop()
{

}

void serialEvent()
{
while (Serial.available())
{
char inChar = (char)Serial.read();
Serial.println(inChar);
inputString[j] = inChar;
j++;

if (inChar == '\n')
{
j=0;
char *rest;
char *token;
char *ptr = inputString;

Serial.println("New Line");
Serial.println(inputString);

stringComplete = true;

while(token = strtok_r(ptr, ",", &rest))
{
sprintf(varx, "%s\n", token);
x[i]=atol(token);

Serial.print("valor ");
Serial.print(i);
Serial.print(": ");
Serial.print(x[i]);
ptr = rest;
i++;

if(i>5)
{
i=0;
break;
}
}
}
}
PWMFun();
}

void PWMFun()
{
analogWrite(2, x[0]);
analogWrite(3, x[1]);
digitalWrite(22, x[2]);
digitalWrite(23, x[3]);
digitalWrite(26, x[4]);
digitalWrite(27, x[5]);
}

Potrebbero piacerti anche