Difference between revisions of "SKYMEGA"

From Asociación de Robótica UC3M
Jump to navigation Jump to search
(Programilla para PWM)
 
Line 38: Line 38:
 
----
 
----
  
Un programa que envía PWM (Ejemplo servo seq):
+
Un programa que envía PWM:
 +
 
 +
#include <Servo.h>
 +
 
 +
const int SALIDA = 10;
 +
const int ENTRADA = 5;
 +
 +
Servo signal;
 +
 +
void setup() {
 +
        pinMode(ENTRADA,INPUT);
 +
        signal.attach(SALIDA);
 +
        Serial.begin(9600);
 +
 +
 +
void loop() {
 +
        if(digitalRead(ENTRADA))signal.writeMicroseconds(1000);
 +
        else signal.writeMicroseconds(2000);     
 +
}

Latest revision as of 18:51, 26 September 2013

http://www.iearobotics.com/wiki/index.php?title=SkyMega

Se puede programar en el entorno Arduino (teclear arduino en una consola).

Se necesitan programar dos funciones:

  • setup() para rutinas de inicio
  • loop() para funciones periódicas

Un ejemplo sencillo que nos devuelve lo que enviamos por el puerto serie: [1]

int incomingByte = 0;   // for incoming serial data

void setup() {
       Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
}

void loop() {

       // send data only when you receive data:
       if (Serial.available() > 0) {
               // read the incoming byte:
               incomingByte = Serial.read();

               // say what you got:
               Serial.print("I received: ");
               Serial.println(incomingByte, DEC);
       }
}

Podemos probarlo desde el entorno Arduino haciendo click en Tools -> Serial Monitor, utilizando el programa cutecom, o desde una consola:

screen /dev/ttyUSB0 9600

Un programa que envía PWM:

#include <Servo.h> 
 
const int SALIDA = 10;
const int ENTRADA = 5;

Servo signal; 

void setup() {
       pinMode(ENTRADA,INPUT);
       signal.attach(SALIDA);
       Serial.begin(9600);
}  

void loop() { 
       if(digitalRead(ENTRADA))signal.writeMicroseconds(1000);
       else signal.writeMicroseconds(2000);      
}