9#ifndef PICO_TRAINING_BOARD_H
10#define PICO_TRAINING_BOARD_H
19#include "hardware/gpio.h"
20#include "pico/multicore.h"
21#include "pico/stdlib.h"
22#include "hardware/pwm.h"
23#include "hardware/adc.h"
24#include "hardware/i2c.h"
65#define STEP_MOTOR_A1 11
66#define STEP_MOTOR_A2 12
67#define STEP_MOTOR_B1 13
68#define STEP_MOTOR_B2 14
69#define STEP_DELAY_MIN 1000
70#define STEP_DELAY_MAX 10000
71#define STEPS_PER_REV 2048
100#define ULTRA_SONIC_TR 8
101#define ULTRA_SONIC_EC 9
108#define PIR_DETECTOR 19
119#define LCD_CHARACTER 1
123#define LCD_CLEARDISPLAY 0x01
124#define LCD_RETURNHOME 0x02
125#define LCD_ENTRYMODESET 0x04
126#define LCD_DISPLAYCONTROL 0x08
127#define LCD_CURSORSHIFT 0x10
128#define LCD_FUNCTIONSET 0x20
129#define LCD_SETCGRAMADDR 0x40
130#define LCD_SETDDRAMADDR 0x80
133#define LCD_ENTRYSHIFTINCREMENT 0x01
134#define LCD_ENTRYLEFT 0x02
137#define LCD_BLINKON 0x01
138#define LCD_CURSORON 0x02
139#define LCD_DISPLAYON 0x04
142#define LCD_MOVERIGHT 0x04
143#define LCD_DISPLAYMOVE 0x08
146#define LCD_5x10DOTS 0x04
147#define LCD_2LINE 0x08
148#define LCD_8BITMODE 0x10
151#define LCD_BACKLIGHT 0x08
152#define LCD_ENABLE_BIT 0x04
160#define PWM_DUTY_MAX 4095
163#define BUZZER_CLOCK 125000000
164#define BUZZER_WRAP 4095
165#define BUZZER_DUTY_50 2048
168#define NOTE_C4 261.63
169#define NOTE_CS4 277.18
170#define NOTE_D4 293.66
171#define NOTE_DS4 311.13
172#define NOTE_E4 329.63
173#define NOTE_F4 349.23
174#define NOTE_FS4 369.99
175#define NOTE_G4 392.00
176#define NOTE_GS4 415.30
177#define NOTE_A4 440.00
178#define NOTE_AS4 466.16
179#define NOTE_B4 493.88
201uint
init_pwm_pin(uint gpio,
float frequency, uint16_t duty);
216void play_note(
float frequency,
int duration_ms);
217void play_notes(
const char *notes[][2],
int num_notes,
int duration);
float revolutions
Definition main.c:139
uint wait_for_button_press(uint32_t timeout_ms)
Herhangi bir buton basılmasını bekle.
Definition buttons.c:180
ButtonEvent
Definition pico_training_board.h:187
@ BUTTON_HELD
Definition pico_training_board.h:190
@ BUTTON_RELEASED
Definition pico_training_board.h:189
@ BUTTON_PRESSED
Definition pico_training_board.h:188
bool detect_motion(void)
PIR sensörü tarafından hareket algılanıp algılanmadığını kontrol eder.
Definition sensors.c:26
uint32_t get_button_hold_duration(uint gpio)
Bir butonun ne kadar süre al.
Definition buttons.c:157
uint init_pwm_pin(uint gpio, float frequency, uint16_t duty)
Belirli bir GPIO pini için PWM'i başlatır.
Definition init_functions.c:46
void init_led_pwm(void)
Standart LED çıkışları için PWM'i başlatır Kırmızı, Sarı ve Yeşil LED'ler için PWM'i yapılandırır.
Definition led_control.c:23
void lcd_send_byte(uint8_t val, int mode)
LCD'ye bir byte veri gönderir.
Definition lcd_i2c.c:41
void play_note(float frequency, int duration_ms)
Belirtilen frekans ve sürede buzzer'da bir nota çalar.
Definition buzzer.c:160
void init_pwm(void)
Buzzer ve LED çıkışları için PWM'i başlatır.
Definition init_functions.c:31
void init_pir(void)
PIR hareket sensörünü başlatır.
Definition sensors.c:15
float get_average_distance(uint8_t num_samples, uint32_t delay_ms)
Birden fazla ölçümden ortalama mesafeyi alır.
Definition sensors.c:134
void set_led_pwm(uint gpio, uint16_t duty)
Bir LED için PWM görev döngüsünü ayarlar.
Definition led_control.c:36
void lcd_init(void)
LCD ekranını başlatır.
Definition lcd_i2c.c:95
bool button_pressed(uint gpio)
Debounce korumalı temel buton basma kontrolü
Definition buttons.c:37
bool check_button_event(uint gpio, ButtonEvent event)
Çeşitli zamanlama kontrolleriyle buton basma kontrolü
Definition buttons.c:106
motor_direction_t
Motor yönü numaralandırması
Definition pico_training_board.h:86
@ CCW
Definition pico_training_board.h:88
@ CW
Definition pico_training_board.h:87
double get_frequency(const char *note, int octave)
Adı ve oktavı verilen bir müzikal notanın frekansını hesaplar.
Definition buzzer.c:132
void init_step_motor(void)
Step motor GPIO pinlerini başlatır.
Definition stepper.c:52
void step_stop(void)
Step motor için acil durdurma fonksiyonu.
Definition stepper.c:91
bool is_motor_running(void)
Motorun çalışıp çalışmadığını kontrol eder.
Definition stepper.c:65
void init_board(void)
Tüm kart bileşenlerini başlatır.
Definition init_functions.c:112
void lcd_set_cursor(int line, int position)
LCD imlecini belirtilen konuma ayarlar.
Definition lcd_i2c.c:64
void lcd_string(const char *s)
LCD'ye bir metin dizisi gönderir.
Definition lcd_i2c.c:83
float measure_distance(void)
Ultrasonik sensör kullanarak mesafe ölçer.
Definition sensors.c:59
uint16_t read_analog(uint8_t pin)
Analog değeri okur.
Definition keypad.c:108
void init_rgb_pwm(void)
RGB LED pinleri için PWM'i başlatır Tüm üç RGB LED kanalını PWM ile yapılandırır.
Definition led_control.c:12
void init_lcd(void)
I2C LCD ekranını başlatır.
Definition init_functions.c:77
void init_adc(void)
Analog girişler için ADC'yi başlatır.
Definition init_functions.c:17
motor_state_t
Motor durumu numaralandırması
Definition pico_training_board.h:77
@ MOTOR_STOPPED
Definition pico_training_board.h:78
@ MOTOR_RUNNING
Definition pico_training_board.h:79
@ MOTOR_ERROR
Definition pico_training_board.h:80
bool analog_button_pressed(uint gpio)
Analog giriş kullanarak bir düğmeye basılıp basılmadığını kontrol eder.
Definition keypad.c:81
void set_pwm_frequency(uint slice_num, float frequency)
Belirtilen dilim için PWM frekansını ayarlar.
Definition buzzer.c:99
void init_buzzer_pwm(void)
Buzzer için özel olarak PWM'i başlatır.
Definition buzzer.c:81
motor_state_t get_motor_state(void)
Motorun mevcut durumunu döndürür.
Definition stepper.c:74
void send_motor_parameters(motor_direction_t direction, uint speed, float revolutions)
Step motor parametrelerini Core1'e gönderir (yön, hız, devir)
Definition main.c:147
void lcd_clear(void)
LCD ekranını temizler.
Definition lcd_i2c.c:54
void play_notes(const char *notes[][2], int num_notes, int duration)
Bir dizi müzikal notanın çalınmasını sağlar.
Definition buzzer.c:190
void step_turn(motor_direction_t direction, uint speed, float revolutions)
Belirtilen yön, hız ve devir sayısı ile step motor dönüşünü kontrol eder.
Definition stepper.c:120
char keypadOku(void)
Analog tuş takımını okur ve basılan tuşu döndürür.
Definition keypad.c:33
void init_ultrasonic(void)
Ultrasonik sensör pinlerini başlatır.
Definition sensors.c:40
bool wait_for_motion(uint32_t timeout_ms)
Zaman aşımı ile hareket algılamayı bekler.
Definition sensors.c:111
void init_buttons(void)
Tüm buton GPIO pinlerini başlat.
Definition buttons.c:58