Difference between revisions of "SKYMEGA"

From Asociación de Robótica UC3M
Jump to navigation Jump to search
(Programilla para PWM)
 
(4 intermediate revisions by one other user not shown)
Line 2: Line 2:
  
 
Se puede programar en el entorno Arduino (teclear '''arduino''' en una [[Consola_de_Linux |consola]]).
 
Se puede programar en el entorno Arduino (teclear '''arduino''' en una [[Consola_de_Linux |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:  [http://arduino.cc/en/Reference/serial]
 +
 +
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_de_Linux |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);     
 +
}

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);      
}