Hola Mundo! Arduino vs MBed

Publicado por en Electrónica el 15/12/2009

Mucho se está hablando últimamente sobre MBed, y en concreto sobre si será capaz de desbancar o no a la todopoderosa plataforma Arduino en un futuro.

Por ello, y debido a que creo que va a ser el juguete de estas navidades de todo geek que se precie, vamos a ver las principales diferencias que nos encontraríamos si hoy mismo dejáramos en un cajón a nuestro Arduino y enchufáramos el MBed. Vamos a dejar de un lado por una vez las características hardware de los cacharros y vamos a centrarnos en el software y nada mejor para este caso que comparar los "Hola Mundo!" de uno y del otro. También compararemos el clásico control de un servomotor, que quizás nos dé una idea más clara de los cambios. Por supuesto podéis comentarnos todo lo que se os ocurra respecto al tema.

Todo ello lo tenéis a continuación... 

Hola Mundo con Arduino y mBed

Arduino:

int ledPin = 13; // Al pin 13 porque internamente ya cuenta con un LED conectado a una resistencia de 1kΩ
void setup() {
  pinMode(ledPin, OUTPUT);      
  // asigna el pin digital pin como output (salida)
}
void loop() {
  digitalWrite(ledPin, HIGH);   // enciende el LED (on)
  delay(1000);                  // espera por un segundo
  digitalWrite(ledPin, LOW);    // apaga el LED (off)
  delay(1000);                  // espera por un segundo
}

mBed

#include "mbed.h"
DigitalOut myled(LED1); //Asignación del Pin como salida. LED1 es el equivalente al famoso pin 13 de Arduino en MBed
int main(){
  while(1)  {
     myled = 1;  //Pone la patilla a nivel alto, recordad aquí son 3.3V!
     wait(1);      // Espera durante 1 segundo
     myled = 0;
     wait(1);
 }
}

Controlando Servos:

Arduino

#include <Servo.h> 

Servo miservo; 

int posicion = 0;    // variable que almacena la posición del servo 

void setup() 
{ 
  miservo.attach(9);  // asigna el objeto servo al pin 9 
} 

void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // El sero camina desde la posción de 0º hasta 180º en pasos de unidad 
  {                                  
    miservo.write(pos);               
    delay(15);                       // espera 15ms para que el servo alcanze esa posición 
  } 
  for(pos = 180; pos>1; pos-=1)     // Ahora desde 180º a 0º 
  {                                
    miservo.write(pos);               
    delay(15);                        
  } 
} 

mBed

#include "mbed.h"
#include "servo.h"
Servo myservo (p21);
int main() {
 int i;
  while(1) {
   for(i=0 ; i<180 ; i++) {
     myservo = i;
     wait(0.15);
   }
   for(i=180 ; i > 0; i--) {
    myservo = i;
    wait(0.15);
   }
 }
}

Si te ha gustado, compártelo con tus amigos!

Ver comentarios antiguos...

Uso de Cookies

Utilizamos cookies propias y de terceros para optimizar tu visita. No utilizamos cookies para recoger información de carácter personal.

Puedes permitir su uso o rechazarlo y cambiar su configuración cuando lo desees.

Cerrar

Más información en nuestra Política de Cookies.