Arduino: membina penterjemah bahasa Morse - bagaimana ia berfungsi
Dalam tip praktikal ini anda akan belajar bagaimana anda boleh dengan mudah membina penterjemah Morse dengan Arduino anda.
Membina penterjemah Morse dengan Arduino - ini diperlukan
Pertama sekali, sudah tentu, anda memerlukan Arduino.
- Anda juga perlu mendapatkan buzzer aktif dan LED.
- Sambungkan bel kepada pin 9 dan LED ke pin 13.
Arduino: penterjemah Morse program
Di sini kami telah memprogramkan kod sampel kecil untuk anda, yang anda dialu-alukan untuk digunakan. Hanya muat naik ke Arduino dan mulakan monitor bersiri.
- #define debug benar
- int ledPin = 13;
- int speakerPin = 9;
- int pitch1 = 140;
- int pitch2 = 140;
- int dot = 50;
- int dash = 3 * dot;
- String morseATable [] = {".-", "-...", "-.-.", "- ..", ".", "..-.", "-.", ". ... ", " .. ", " .--- ", " _._ ", " .- .. ", " - ", " -. ", " --- ", " .-- . ", " --.- ", " .-. ", " ... ", " - ", " ..- ", " ...- ", " .-- ", " -..- ", " -.-- ", " - .. "};
- String morseNTable [] = {"-----", ".----", "..---", "...--", "....-", "... .. ", " -.... ", " - ... ", " --- .. ", " ----. "};
- void setup () {
- pinMode (ledPin, OUTPUT);
- pinMode (speakerPin, OUTPUT);
- Serial.begin (9600);
- jika (debug) {
- Serial.println ( "\ nmulakan");}
- }
- kekosongan gelung () {
- jika (benar) {
- convert2Morse (Serial.readString ());
- }
- }
- tidak sah convert2Morse (mesej String) {
- untuk (int pos = 0; pos <message.length (); pos ++) {
- jika (debug) {
- Serial.print (message.charAt (pos));
- Serial.print ("");
- }
- jika ((message.charAt (pos)> = 97) && (message.charAt (pos) <= 122)) {
- morseLED (morseATable [message.charAt (pos) -97]);}
- jika ((message.charAt (pos)> = 48) && (message.charAt (pos) <= 57)) {
- morseLED (jadual morse [pesanan [pos] -48]);}
- jika (message.charAt (pos) == 32) {
- morseLED ("");}
- jika (debug) {
- Serial.println ();
- }
- }}
- tidak sah morseLED (urutan rentetan) {
- untuk (int pos = 0; pos <sequence.length (); pos ++) {
- FlashLED (sequence.charAt (pos));}
- kelewatan (2 * titik);
- }
- void flashLED (char dotOrDash) {
- jika (debug) {
- Serial.print (dotOrDash);}
- jika (dotOrDash == 46) {
- digitalWrite (ledPin, TINGGI);
- nada (speakerPin, pitch1);
- tunda (dot);
- digitalWrite (ledPin, LOW);
- noTone (speakerPin);
- tunda (dot);
- } lain jika (dotOrDash == 45) {
- digitalWrite (ledPin, TINGGI);
- nada (speakerPin, pitch2);
- tunda (dash);
- digitalWrite (ledPin, LOW);
- noTone (speakerPin);
- tunda (dot);
- } lain jika (dotOrDash == 32) {
- tunda (dot);}
- }
Dalam hujung praktikal seterusnya, kami akan menunjukkan kepada anda bagaimana anda boleh menggunakan modul GSM pada Arduino.