Professional Documents
Culture Documents
TRABAJO DE INVESTIGACIN
ARDUINO
www.arduino.cc/es/
MATHWORKS (MATLAB)
http://www.mathworks.com/
Tensin de operacin
Tensin de entrada Pines E/S digitales
Entradas analgicas
Corriente mx. por cada 40 mA PIN de E/S Memoria Flash 16 KB (ATmega168) o 32 KB (ATmega328) de los cuales 2KB son usados por el bootloader 1 KB (ATmega168) o 2 KB (ATmega328) 512 bytes (ATmega168) o 1 KB (ATmega328) 16 MHz
SRAM
EEPROM
Nota: Los servos consumen energa considerable, as que si se necesita para manejar ms de una o dos, es necesario una fuente independiente (es decir, no el pin 5 V en la placa Arduino). Asegrese de conectar las tierras de la Arduino y fuente de alimentacin externa junta.
MATLAB - ARDUINO
Matlab ArduinoIO Arduino
Arduino desde la lnea de comandos de MATLAB. Por ejemplo: E / S analgicas. E / S digital. Operar servomotores. Leer encoders. Manejar motores DC y motores paso a paso.
MATLAB
which('arduino.m','-all')
Busca
conectada la placa)
MATLAB
FUNCIN Arduino pinMod e digital analog DESCRIPCIN SINTAXIS
Asignar a variable las a = arduino (' COM# '); caractersticas de Arduino. Especificar el modo del pin. a.pinMode (4, 'input'); Input output. a.pinMode (1, 'output');
E/S digitales.
E/S analgicas.
Servo
a.digitalRead (4)% lee pin 4 a.digitalWrite (13,0)% escriba 0 al pin 13 a.analogRead (5)% lee pin analgico 5 a.analogWrite (9, 155)% escribir 155 a 9 pin analgico a.servoAttach (9);% servo en el pin # 9 a.servoWrite (9100);% servo gira en el pin # 9 a 100 grados
a.encoderRead (0)% leer la posicin
Encoder Codificadores
MATLAB
% Asignar las ordenes en la configuracin de Arduino. % - Especificar el modo de pin a.pinMode (4, 'input'); a.pinMode (13, 'output'); % - Servos a.servoAttach (9);% Asignar servo en el pin # 9
grados val = a.servoRead (9);% lee ngulo de servo en pin # 9 a.servoDetach (9);% desprenderse servo del pin # 9
MATLAB
a.servoAttach(5) % Asignar al pin 5 como una salida al
pin 5. a.servoWrite(6,angulo(2));
el
de los datos.
diferentes velocidades.
Inicialmente, el buffer est vaco. Como los valores de datos nuevos vienen en ellos se agrega
al final de la lista (datos ms recientes). Si el programa lee un valor desde el buffer, este comienza en la parte superior de la lista (datos ms antiguos). Una vez que se lee un byte de datos, este ya no est en el buffer. Los datos en la segunda posicin en la lista se mueve hacia arriba a la posicin superior. Tan pronto como el buffer esta completo y ms datos es enviado, los datos ms antiguos se descartan para hacer espacio para nuevos datos. Hay que ser inteligente no es suficiente para perder datos.
buffer
1 2 3 4 5 10 6
final del buffer, pero las casillas se mueven, eliminando el valor ms antiguo en la lista. El valor de 6 desapareci.
6 4 5 9 3 1 2 3 4 5 4 5 9 3 12
1 2 3 4 5
Antes
Despus
SINTAXIS
>> s = serial ('COM1');
get() fopen()
fwrite() or fprintf() Usado para leer los datos en el puerto serial fscanf
>> set(s, 'BaudRate', 4800); >> s.BaudRate = 4800; Verifica el valor de alguna de as propiedades del >> get(s, 'BaudRate') puerto serial. ans = 4800 Abre la comunicacin del puerto serial. >> fopen(s) >> s.Status ans = open Comando para escribir datos en el puerto serial. >> fwrite(s, 'string');
a.servoAttach(5 )
a.servoWrite(5,an(1)) ;
ARDUINO
Para comenzar se incluye la librera. #include <Servo.h> La estructura del programa tiene la siguiente forma: Void setup() {
//Configuracion inicial, Modo de comunicacin //serial } Void loop(){ // Cdigo que se ejecuta continuamente. }
los
pines,
DESCRIPCIN
SINTAXIS
Serial.begin(11520 0) Serial.println(n); val Serial.read(); Serial.available()>0 =
Fijar la velocidad de transmisin de informacin en bits por segundos. Serial.println() Imprime datos al puerto serie seguido por un salto de la lnea al final. Serial.read() Lee o captura un byte (un carcter) desde el puerto serie. Devuelve -1 si no hay ningn carcter en el puerto serie. Serial. Devuelve el numero de caracteres available() disponibles para leer desde el puerto serie.
ARDUINO (Setup)
La configuracin de la placa: void setup() {
int i; for (i=0;i<20;i++) { pinMode(i,INPUT); %Cada pin como entrada. digitalWrite(i,0); %Asignar un estado bajo. } Serial.begin(115200);
Read()
Escribe un valor en el servo, controlando el servo.write(angle) eje en consecuencia. En un servo estndar, con esto establecer el ngulo del eje (en grados. Lea el ngulo actual del servo (el valor que servo . read () se pasa a la ltima llamada a WRITE()). variable servo est servo.attached()
servo.detach()
ARDUINO (Loop)
Verificar que halla valores para leer: if (Serial.available() >0) {
DESDE MATLAB Enva el numero del pin por puerto serie: fwrite(a.aser,[54 97+pin 48+1],'uchar');
Leer pin:
Val = Serial.read()
ARDUINO (Loop)
Verificar que halla valores para leer: if (Serial.available() >0) {
DESDE MATLAB Enva el numero del pin por puerto serie: fwrite(a.aser,[56 97+pin val],'uchar');
Leer pin:
Val = Serial.read()