Arduino中的数字信号和通常所说的数字信号有一点差别。通常所说的数字信号是计算机科学中的一个重要的概念,用来表示将数据表示为离散值序列的信号,在任何给定的时刻,它只能取有限数量值中的一个。而Arduino中的数字信号比它的范围还要小,只能取0或者1(LOW或者HIGH)。
从模拟信号到数字信号,再到Arduino中的数字信号,是越来越简单的。我们不妨从最简单的上手,一步步来解决更复杂的问题。
01
数字信号及其输入输出
Arduino中的数字信号
Arduino中的数字信号是指取值只有0或者1的信号,Arduino中的所有的引脚都能读取或者输出0与1信号。
Arduino控制板的电源电压一般是5V,只要输入值超过电源电压的一半(如2.6V),就代表高电位(1);如果输入值低于电源电压的一半,则代表低电位(0)。
输出数字信号通常也只有两种情况,如果输出0则端口的电压是0V,输出1端口的电压是5V。
读取或者输出信号通常要用到变量,变量的类型有很多,Arduino中为数字信号量身定做的变量类型是布尔型变量。布尔型变量的定义和其它类型是一样的,语句的标准格式是:
boolean 变量名称 = 变量初值;
其中,boolean是指定义的这个变量是布尔型的;变量名称是你为这个变量起的名字,要遵守变量命名的规则,同时也要用起来方便;等号后面是在定义变量的时候为它赋的初值,一般只能是0或1。
数字输入及元器件
数字输入这个说法似乎让人摸不着头脑,其实没有那么难,就是Arduino控制板从一个端口读电压值,如果超过2.5V就是1,不到2.5V就是0。
Arduino的所有端口都能读入或者输出数字信号。当Arduino控制板的端口正确地连接元器件以后,就能从这个端口读入信号,但首先要把这个端口设置成数字输入模式。
pinMode(pin,mode);
其中,pin是你要设置的端口号,也就是元器件连接在Arduino控制板的哪个端口;mode可以设置成INPUT或者OUTPUT,分别代表输入或者输出。
读取输入端口的状态需要用到另一个命令:
val = digitalRead(pin);
其中,val是之前就定义好的一个布尔型变量;