部落格

如何以Arduino使用ADS1115 ADC的連續模式

德州儀器ADS1115是一個16位元的類比數位轉換器(ADC)。這個ADC是基於ΔΣ架構,取樣率最高為860Hz。 ADS1115必須操作在連續模式(Continuous Mode)下才可以用最高860Hz的取樣率來做轉換。 在這篇文章中,我們會示範如何在Arduino環境下設定ADS1115使用連續模式,並且以860Hz取樣率做轉換。

Raspberry Pi Pico - 如何一次設定多個GPIO (Mask Set)

在Raspberry Pi Pico程式中,我們通常會使用gpio_set()來設定一個腳位的數值。 像是在簡單的Blink程式中,我們會這樣寫:

    while(true) {
        gpio_set(led_pin, 1);
        sleep_ms(1000);
        gpio_set(led_pin, 0);
        sleep_ms(1000);
    }

如果我們要一次設定更多隻腳的話,直覺上我們可能會寫更多行的gpio_set()

    gpio_set(pin1, value1);
    gpio_set(pin2, value2);
    // ...
    gpio_set(pinN, valueN);

這樣子如果要設定N隻腳的話,就要寫N行程式,有點沒效率。 其實有更聰明的方法可以只用一行就達到一樣的目的,這個方法叫做mask set。 在實作之前,我們需要了解一下GPIO的數值(0和1)是怎麼被設定的。