LaserComm (5 / 6 paso)

Paso 5: Paso 5: Añadir código en el IDE de Arduino

Si ya no tienes el software de Arduino vaya a http://arduino.cc para descargarlo.

Código para:

LaserComm
Dispositivo de comunicación por láser / / Corbin Newhard

laserPin int = 13;

Cadena de mensaje = "Hola mundo";

l de bytes [] = {0, 0};

o de bytes [] = {0, 1, 0};

Byte [] h = {0, 1, 1, 0};

e de bytes [] = {0, 1, 1, 1};

Byte [] w = {1, 0, 0};

Byte [] r = {1, 0, 1};

Byte [] d = {1, 1, 0};

espacio de bytes [] = {1, 1, 1};

void setup() {}

Serial.Begin(9600);

pinMode (laserPin, salida); }

void loop() {}

para (int i = 0; i < message.length(); i ++) {}

Serial.Print(Message[i]);

sendCode(message[i]);

Serial.println(); }

Delay(5000); }

void sendCode(char x) {}

{Switch(x)}

caso 'L': para (int i = 0; i < sizeof(l); i ++) {si (l [i] == 0){dot();} else{dash();}} break;

caso ' o ': para (int i = 0; i < sizeof(o); i ++) {si (o [i] == 0){dot();} else{dash();}} break;

'H' del caso: para (int i = 0; i < sizeof(h); i ++) {si (h [i] == 0){dot();} else{dash();}} break;

caso 'E': para (int i = 0; i < sizeof(e); i ++) {si (e [i] == 0){dot();} else{dash();}} break;

caso 'W': de (int i = 0; i < sizeof(w); i ++) {si (w [i] == 0){dot();} else{dash();}} break;

'R' del caso: para (int i = 0; i < sizeof(r); i ++) {si (r [i] == 0){dot();} else{dash();}} break;

caso sería ': para (int i = 0; i < sizeof(d); i ++) {si (d [i] == 0){dot();} else{dash();}} break;

caso ' ': para (int i = 0; i < sizeof(space); i ++) {si (espacio [i] == 0){dot();} else{dash();}} break; }

}

void dash()

{Serial.print("-"); digitalWrite (laserPin, HIGH); delay(600);

digitalWrite (laserPin, LOW);

Delay(100);

}

void dot()

{Serial.print("."); digitalWrite (laserPin, HIGH); delay(200);

digitalWrite (laserPin, LOW);

Delay(100);

}

(Reemplazar y añadir tus propias letras y mensaje)

Código para el receptor:

const int sensorpin = 0;
isStarted boolean = false;

largo lastTime = 0;

duración = 0;

darkTime largo = 0;

largo darkDuration;

umbral de int = 600;

highPulse largo = 75;

lowPulse largo = 10;

void setup() {}

Serial.Begin(9600);

}

void loop() {}

luz de flotación;

luz = analogRead (sensorpin);

Serial.println(Light);

Si (luz < umbral & &! isStarted) {}

isStarted = true;

lastTime = millis();

darkDuration = millis() - darkTime;

Si {} (darkDuration > 600)

Serial.println ();

}

}

Si (luz > = umbral & & isStarted) {}

isStarted = false;

duración = millis() - lastTime;

darkTime = millis();

Si (duración > highPulse) {}

Serial.Print ("1");

}

Si (duración > lowPulse & & duración < = highPulse) {}

Serial.Print ("0");

}

} }

Artículos Relacionados