圣源电子制作

标题: Ardunio 入门教程-实验七 摩尔斯代码翻译机 [打印本页]

作者: sydz    时间: 2012-5-12 15:10
标题: Ardunio 入门教程-实验七 摩尔斯代码翻译机
   Ardunio 入门教程-实验七 摩尔斯代码翻译机

实验用到的元件
(, 下载次数: 59)
实验用到的元件 ,一个蜂鸣器,2根杜邦线,一块实验板。

原理图
(, 下载次数: 54)


3 天前 上传
下载附件 (53.23 KB)



LED长脚的为正,短脚为负极。

蜂鸣器长脚的为正,短脚为负极。   在蜂鸣器的底下也有标价正负。
连接图
(, 下载次数: 56)
LED的正极连接 IO口12,LED负极连接电阻,电阻的另外一端接GND.

实验演示视频:

http://player.youku.com/player.php/sid/XMzk0NzU1Njg0/v.swf

代码
  1. // Listing. Project 3.
  2. int ledPin = 12;

  3. char* letters[] = {
  4. ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", // A-I
  5. ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", // J-R
  6. "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." // S-Z
  7. };

  8. char* numbers[] = {"-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----."};

  9. int dotDelay = 200;

  10. void setup()
  11. {
  12. pinMode(ledPin, OUTPUT);
  13. Serial.begin(9600);
  14. }

  15. void loop()
  16. {
  17. char ch;
  18. if (Serial.available()) // is there anything to be read from USB?
  19. {
  20. ch = Serial.read(); // read a single letter
  21. if (ch >= 'a' && ch <= 'z')
  22. {
  23. flashSequence(letters[ch - 'a']);
  24. }
  25. else if (ch >= 'A' && ch <= 'Z')
  26. {
  27. flashSequence(letters[ch - 'A']);
  28. }
  29. else if (ch >= '0' && ch <= '9')
  30. {
  31. flashSequence(numbers[ch - '0']);
  32. }
  33. else if (ch == ' ')
  34. {
  35. delay(dotDelay * 4); // gap between words
  36. }
  37. }
  38. }

  39. void flashSequence(char* sequence)
  40. {
  41. int i = 0;
  42. while (sequence[i] != NULL)
  43. {
  44. flashDotOrDash(sequence[i]);
  45. i++;
  46. }
  47. delay(dotDelay * 3); // gap between letters
  48. }

  49. void flashDotOrDash(char dotOrDash)
  50. {
  51. digitalWrite(ledPin, HIGH);
  52. if (dotOrDash == '.')
  53. {
  54. delay(dotDelay);
  55. }
  56. else // must be a -
  57. {
  58. delay(dotDelay * 3);
  59. }
  60. digitalWrite(ledPin, LOW);
  61. delay(dotDelay); // gap between flashes
  62. }


复制代码





欢迎光临 圣源电子制作 (http://bbs.syyyd.com/) Powered by Discuz! X3.4