Arduino编程速查笔记

date: 2016.12.22; modification:2016.12.22

目录:

1 GPIO设置


    #define HIGH 0x1
    #define LOW  0x0
    
    #define INPUT 0x0
    #define OUTPUT 0x1
    #define INPUT_PULLUP 0x2

    // 数字输出
    pinMode(ledPin,OUTPUT); // ledPin可以为如1, 5, 10, A0, A3
    digitalWrite(ledPin,HIGH);
    digitalWrite(ledPin,LOW);

    // 数字输入
    pinMode(7, INPUT);
    int val = digitalRead(7);


    // 模拟输入
    analogReference(type)
        // * DEFAULT: 默认5V(Arduino板为5V)或3.3伏特(Arduino板为3.3V)
        //         为基准电压。
        // * INTERNAL: 在ATmega168和ATmega328上以1.1V为基准电压,
        //         以及在ATmega8上以2.56V为基准电压(Arduino Mega无此选项)
        // * INTERNAL1V1: 以1.1V为基准电压(此选项仅针对Arduino Mega)
        // * INTERNAL2V56: 以2.56V为基准电压(此选项仅针对Arduino Mega)
        // * EXTERNAL: 以AREF引脚(0至5V)的电压作为基准电压。

        // **注意事项:**

        // 改变基准电压后,之前从anal??ogRead()读取的数据可能不准确。

        // **警告:**

        // 不要在AREF引脚上使用使用任何小于0V或超过5V的外部电压。
        // 如果你使用AREF引脚上的电压作为基准电压,你在调用analogRead()
        // 前必须设置参考类型为EXTERNAL。否则,你将会短路有效的基准电压
        // (内部产生)和AREF引脚,这可能会损坏您Arduino板上的单片机。

        // 另外,您可以在外部基准电压和AREF引脚之间连接一个5K电阻,
        // 使你可以在外部和内部基准电压之间切换。请注意,总阻值将会发生改变,
        // 因为AREF引脚内部有一个32K电阻。这两个电阻都有分压作用。所以,
        // 例如,如果输入2.5V的电压,最终在在AREF引脚上的电压将为:
        // 2.5 * 32 /(32 + 5)= 2.2V。 

    int val = analogRead(analogPin);
    analogWrite(pin, v); // v:0~255. 输出pwm
        // ATmega168或ATmega328: 3,5,6,9,10和11可以实现该功能.
        // ATmega8: 9、10、11可以使用analogWrite()。
        // 在使用analogWrite()前,你不需要调用pinMode()来设为输出。