SkyLogic kartında, dijital giriş ve çıkışlar (Digital Input/Output – GPIO) olarak adlandırılan pinler bulunmaktadır. Dijital girişler, “LOW” (0) veya “HIGH” (1) olarak okunabilen iki durumlu sinyalleri alırken; dijital çıkışlar, “LOW” (0) veya “HIGH” (1) olarak ayarlanabilen iki durumlu sinyaller üretir.
Dijital Çıkış (Digital Output)
Dijital çıkış pinleri, LED’ler, röleler gibi aktüatörleri kontrol etmek için kullanılır. SkyLogic üzerindeki dijital çıkış pinleri “HIGH” ve “LOW” olmak üzere iki duruma sahiptir. “HIGH” durumunda pin, 3.3V seviyesine çıkarılırken, “LOW” durumunda ise 0V seviyesine çekilir.
Örneğin, bir LED’i SkyLogic ile kontrol etmek için, LED’i bir direnç ile birlikte bir dijital çıkışa bağlayabilirsiniz. SkyLogic üzerinde programlama yaparken, dijital çıkış pininin durumunu “HIGH” yaparak LED’i yakabilir veya “LOW” yaparak LED’i söndürebilirsiniz.
Dijital Giriş (Digital Input)
SkyLogic’te dijital giriş pinleri, sensörlerden ve diğer cihazlardan veri almak için kullanılır. Bu pinler “HIGH” (yüksek) ve “LOW” (düşük) olmak üzere iki duruma sahiptir. “HIGH” durumu 3.3V seviyesinde, “LOW” durumu ise 0V seviyesindedir.
Örneğin, bir düğme SkyLogic’in dijital girişine bağlanabilir. Düğmeye basıldığında, giriş pininin durumu “HIGH” olur ve düğme bırakıldığında durum “LOW” olur. Bu sayede SkyLogic, düğmenin durumunu algılayabilir ve buna göre bir eylem gerçekleştirebilir.
Buton ile LED Yakma Projesi
İlk olarak, gerekli kütüphaneleri projenize dahil edin ve buton ile LED için kullanacağınız pinleri tanımlayın:
// Gerekli kütüphanelerin dahil edilmesi
#include "pico/stdlib.h"
#include "hardware/gpio.h"
// Buton ve LED için pin tanımlamaları
#define button_pin 29
#define led_pin 25
Ardından `main()` fonksiyonunuzu yazın:
int main() {
stdio_init_all();
// Buton ve LED pinlerini ayarla
gpio_init(button_pin);
gpio_init(led_pin);
// LED pinini çıkış, buton pinini giriş olarak ayarla
gpio_set_dir(led_pin, GPIO_OUT);
gpio_set_dir(button_pin, GPIO_IN);
// Butonun "HIGH" olmasını sağlayacak şekilde çekme direnci ayarla
gpio_pull_up(button_pin);
while(true) {
// Eğer butona basıldıysa LED'i yak
if(!gpio_get(button_pin)){
gpio_put(led_pin, true);
}
// Butona basılmadıysa LED'i söndür
else{
gpio_put(led_pin, false);
}
sleep_ms(200);
}
}
Build İşlemi ve UF2 Dosyasının Oluşturulması
Projenizin bulunduğu dizinde bir `CMakeLists.txt` dosyası oluşturun ve içine aşağıdaki içeriği ekleyin:
cmake_minimum_required(VERSION 3.12)
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(gpio_example C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
pico_sdk_init()
add_executable(gpio_example
main.c
)
target_link_libraries(gpio_example pico_stdlib hardware_gpio)
pico_add_extra_outputs(gpio_example)
Build işlemlerini başlatın:
mkdir build
cd build
cmake ..
make
Derleme işlemi tamamlandıktan sonra oluşturulan `.uf2` dosyasını SkyLogic kartınıza yükleyin. Kartı, ‘bootsel’ butonuna basılı tutarak bilgisayarınıza bağlayın ve ardından `.uf2` dosyasını USB depolama cihazı olarak görünen SkyLogic’e sürükleyip bırakın.