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