LaserComm (5 / 6 steg)

Steg 5: Steg 5: ladda upp koden på Arduino IDE



Om du inte redan har den Arduino programvaran gå till http://arduino.cc att ladda ner den.

Kod för sändaren:

LaserComm
Laser kommunikationsenheten / / Corbin Newhard

int laserPin = 13.

Sträng meddelande = "HELLO WORLD";

byte [l] = {0, 0};

byte [o] = {0, 1, 0};

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

byte [e] = {0, 1, 1, 1};

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

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

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

byte [space] = {1, 1, 1};

void setup() {

Serial.BEGIN(9600);

pinMode (laserPin, produktionen); }

void loop() {

för (int jag = 0; jag < message.length(); i ++) {

Serial.Print(Message[i]);

sendCode(message[i]);

Serial.println(); }

Delay(5000); }

void sendCode(char x) {

Switch(x) {

ärende 'L': för (int jag = 0; jag < sizeof(l); i ++) {om (l [i] == 0){dot();} else{dash();}} bryta;

fallet ' o ': för (int jag = 0; jag < sizeof(o); i ++) {om (o [i] == 0){dot();} else{dash();}} bryta;

"H" i mål: för (int jag = 0; jag < sizeof(h); i ++) {om (h [i] == 0){dot();} else{dash();}} bryta;

fallet "E": för (int jag = 0; jag < sizeof(e); i ++) {om (e [i] == 0){dot();} else{dash();}} bryta;

fallet "W": för (int jag = 0; jag < sizeof(w); i ++) {om (w [i] == 0){dot();} else{dash();}} bryta;

ärende 'R': för (int jag = 0; jag < sizeof(r); i ++) {om (r [i] == 0){dot();} else{dash();}} bryta;

fall skulle ": för (int jag = 0; jag < sizeof(d); i ++) {om (d [i] == 0){dot();} else{dash();}} bryta;

fallet "": för (int jag = 0; jag < sizeof(space); i ++) {om (utrymme [i] == 0){dot();} else{dash();}} bryta; }

}

void dash()

{Serial.print("-"); digitalWrite (laserPin, hög); delay(600);

digitalWrite (laserPin, låg);

Delay(100);

}

void dot()

{Serial.print("."); digitalWrite (laserPin, hög); delay(200);

digitalWrite (laserPin, låg);

Delay(100);

}

(Ersätter och lägga till egna brev och meddelande)

Kod för mottagaren:

CONST int sensorpin = 0;
booleska isStarted = false;

lång lastTime = 0;

lång varaktighet = 0;

lång darkTime = 0;

lång darkDuration;

int tröskel = 600;

lång highPulse = 75.

lång lowPulse = 10;

void setup() {

Serial.BEGIN(9600);

}

void loop() {

float ljus;

ljus = analogRead (sensorpin);

Serial.println(Light);

om (ljus < tröskel & &! isStarted) {

isStarted = sant;

lastTime = millis();

darkDuration = millis() - darkTime;

om (darkDuration > 600) {

Serial.println ();

}

}

om (ljus > = tröskel & & isStarted) {

isStarted = false;

längd = millis() - lastTime;

darkTime = millis();

om (varaktighet > highPulse) {

Serial.Print ("1");

}

om (varaktighet > lowPulse & & varaktighet < = highPulse) {

Serial.Print ("0");

}

} }

Se Steg
Relaterade Ämnen