以摩斯电码为例为 Arduino 编写库

下面是一个简单的莫斯电码,使用Pin13 连接的LED 显示出来。
下面的代码是个简单的莫斯代码,运行的时候,会在Pin13 引脚的LED上显示SOS。

int pin = 13;

void setup()
{
pinMode(pin, OUTPUT);
}

void loop()
{
dot(); dot(); dot();
dash(); dash(); dash();
dot(); dot(); dot();
delay(3000);
}

void dot()
{
digitalWrite(pin, HIGH);
delay(250);
digitalWrite(pin, LOW);
delay(250);
}

void dash()
{
digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
delay(250);
}

dot() 和 dash() 实际的执行闪烁LED指示灯。
头文件的核心是由库中的每个函数的一条线,在一个类中,以及任何需要用到的变量:

class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};

头文件的格式如下:

#ifndef Morse_h
#define Morse_h

// the #include statment and code go here...

#endif

本实例中的头文件如下:

// Morse.h - Library for flashing Morse code.
// Created by David A. Mellis, November 2, 2007.
// Released into the public domain.
#ifndef Morse_h
#define Morse_h

#include "Arduino.h"

class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};

#endif

写 Morse.cpp 文件

// Morse.cpp - Library for flashing Morse code.
// Created by David A. Mellis, November 2, 2007.
//Released into the public domain.

#include "Arduino.h"
#include "Morse.h"

Morse::Morse(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
}

void Morse::dot()
{
digitalWrite(_pin, HIGH);
delay(250);
digitalWrite(_pin, LOW);
delay(250);
}

void Morse::dash()
{
digitalWrite(_pin, HIGH);
delay(1000);
digitalWrite(_pin, LOW);
delay(250);
}

主程序中,如下

#include <Morse.h>

Morse morse(13);

void setup()
{
}

void loop()
{
morse.dot(); morse.dot(); morse.dot();
morse.dash(); morse.dash(); morse.dash();
morse.dot(); morse.dot(); morse.dot();
delay(3000);
}

坐沙发

发表评论