7 Kasım 2018 Çarşamba
STM32 VL Discovery ile ARM Programlama - USART Haberlesmesi
STM32 VL DISCOVERY - USART HABERLEŞMESİ TX YouTube Videom
STM32 VL DISCOVERY - USART HABERLEŞMESİ RX YouTube Videom ve KODLARI
28 Ekim 2018 Pazar
Android Studio - Bluetooth Kullanımı ve HC-07 Modülü ile Arduino'ya Baglantı Kurma
Bu video serimde Android Studio kullanarak android cihazlarımızda bluetooth kullanımının nasıl olduğunu elimden geldiğince anlatmaya çalıştım. Video serim RC Araba sürme ile bitecek ve bittiğinde tüm .java ve .xml dosyaları burada olacak.
Bölüm 1 - Bluetooth Aktifleştirme / Pasifleştirme
14 Eylül 2018 Cuma
STM32 VL Discovery ile ARM Programlama - Analog to Digital Converter (ADC Okuma)
Bu kayıdımda STM32VLDISCOVERY kartı ile ADC okuma videom ve kodlar aşağıda.
15 Ağustos 2018 Çarşamba
Arduino - RC522 RFID Uygulaması
Merhaba herkese. Bu yazımda RC522 RFID uygulamasının kodlarını ve anlatım videosunu paylaşacağım. RC522 kart okuma işlemini kendisi
yapıyor bize de bu veriyi SPI ile okumak kalıyor. Kodların kaynağı Maker Robotistan, ben ise üzerinde kendi isteğime yönelik değişiklikler yaptım. Şöyle ki, 2 no'lu pine bağladığım butona basarak kart okuttuğumda bu kartı eeproma kaydetmesini istedim. Daha sonra herhangi bir kart okuttuğumda kart numarasını Serial Monitörde göstermesini istedim.
Arduino Mega ve Arduino UNO için giriş pinleri farklı. Bu yüzden 2 şemayı da paylaşıyorum. Şemalar robotistan ve instructables'dan alınmıştır. Arduino Mega için şemadan farklı olarak SS pini 9 numaraya değil 53 numaraya girilmiştir.
13 Ağustos 2018 Pazartesi
17 Temmuz 2018 Salı
STM32 VL Discovery ile ARM Programlama - 16x2 LCD Kullanımı
Merhaba arkadaşlar,
Bu yazımda sizlerle STM32VLDISCOVERY kartını kullanarak LCD sürme kodlarını paylaşacağım. Kodları gitHub'dan buldum bir kaç küçük düzeltme yaptım ve yapmaya devam da edeceğim, linkini bırakıyorum.
https://github.com/applefreak/STM32-HD44780
Öncelikle şunu belirtmek isterim ki, bu yazıyı okumadan önce PIC,Arduino vs. ile LCD kullandığınızı varsayıyorum.
Paylaşacağım kodlara göre aşağıdaki bağlantıları yapmanız gerekiyor.
RS -----> Pin C0
EN -----> Pin C1
RW -----> Toprak
D4 -----> Pin C4
D5 -----> Pin C5
D6 -----> Pin C6
D7 -----> Pin C7
Aşağıda paylaşacağım kodları lcd.c ve lcd.h isimli iki dosya oluşturup içine kaydetmeliyiz. Daha sonra bu dosyaları projemizin bulunduğu klasörün içine atmalıyız.
Kütüphanenin projeye dahil edilmesi ve kullanılması ile ilgili çektiğimi YouTube videom aşağıda,
Kütüphane Kodları ↓↓↓↓↓↓↓↓
2 Temmuz 2018 Pazartesi
STM32 VL Discovery ile ARM Programlama - Delay Kütüphanesi
Bu yazımda sizlerle yeni bulduğum ve sağlıklı olduğunu düşündüğüm bir delay kütüphanesi paylaşacağım. Daha önce paylaşmış olduğum delay fonksiyonu çok sağlıklı değildi , fakat bu paylaşacağım kütüphane, sistem saatini kullanmakta ve bu yüzden de tam sonuç vermekte.
delay.c
delay.h
Ya da;
delay.h
delay.c
Bu iki dosyayı oluşturduktan (ister üstteki ister alttaki) sonra kullanmak istediğimiz proje klasörünün içine kopyalıyoruz. GPIO ayarlarını yaptıktan sonra delay_init() fonksiyonunu kullanarak kütüphaneyi hazır hale getiriyoruz. delay fonksiyonumuz artık hazır hale gelmiş oluyor :).
Kullandığınız mikrodenetleyiciye göre include kısmını değiştirmeyi unutmayın :).
Video;
delay.c
// Delay functions using SysTick timer // Minimal delay length is 1ms #include "delay.h" // Delay counter static __IO uint32_t DelayCounter; // SysTick interrupt handler void SysTick_Handler(void) { DelayCounter++; } // Initialize delay functions // note: configures the SysTick counter, must be called each time when the core // clock has been changed void delay_init(void) { // Set reload register to generate IRQ every millisecond SysTick->LOAD = (uint32_t)(SystemCoreClock / (1000UL - 1UL)); // Set priority for SysTick IRQ NVIC_SetPriority(SysTick_IRQn,(1 << __NVIC_PRIO_BITS) - 1); // Set the SysTick counter value SysTick->VAL = 0UL; // Set SysTick source and IRQ SysTick->CTRL = (SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk); } // Do a delay for a specified number of milliseconds // input: // ms - number of milliseconds to wait void delay_ms(uint32_t ms) { // Enable the SysTick timer SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; // Wait for a specified number of milliseconds DelayCounter = 0; while (DelayCounter < ms); // Disable the SysTick timer SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; } // Do a delay for a specified number of milliseconds, MCU in sleep mode // input: // ms - number of milliseconds to wait // note: all wake-up flags must be cleared before calling this function // to ensure proper sleep during delay void delaysleep_ms(uint32_t ms) { // Enable the SysTick timer SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; // Set delay counter DelayCounter = 0; // Wait for a specified number of milliseconds while (DelayCounter < ms) { __WFI(); } // Disable the SysTick timer SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; }
delay.h
#ifndef __DELAY_H #define __DELAY_H #include "stm32f10x.h" // Device header // Function prototypes void delay_init(void); void delay_ms(uint32_t ms); void delaysleep_ms(uint32_t ms); #endif // __DELAY_H
Ya da;
delay.h
#include "stm32f0xx.h" // Device header #ifndef __DELAY_H #define __DELAY_H void SysTick_Handler(void); void delay_ms(__IO uint32_t time); void delay_init(void); #endif // __DELAY_H
delay.c
#include "delay.h" uint32_t TimingDelay; void SysTick_Handler(void) // Her 1ms'de bir olusacak kesmeyi yakaladigimiz fonksiyonumuz { if (TimingDelay != 0) // TimingDelay'in degeri sifirdan farkli ise çalistir. { TimingDelay --; //TimingDelay'in degeri bir azaltir. } } void delay_ms(__IO uint32_t time) // Delay Fonksiyonumuz { TimingDelay = time; //Kesme fonksiyonunda kullanacagimiz degiskenin degerini ayarliyoruz while(TimingDelay != 0); //TimingDelay degiskeninin degeri sifirdan farkli oldugu sürece döngüde kal. } void delay_init(void) { SystemInit(); SysTick_Config(SystemCoreClock/1000); }
Bu iki dosyayı oluşturduktan (ister üstteki ister alttaki) sonra kullanmak istediğimiz proje klasörünün içine kopyalıyoruz. GPIO ayarlarını yaptıktan sonra delay_init() fonksiyonunu kullanarak kütüphaneyi hazır hale getiriyoruz. delay fonksiyonumuz artık hazır hale gelmiş oluyor :).
Kullandığınız mikrodenetleyiciye göre include kısmını değiştirmeyi unutmayın :).
Video;
25 Haziran 2018 Pazartesi
STM32 VL Discovery ile ARM Programlama - GPIO Register Kullanımı
Led Yakma kodları ve videosu;
#include "stm32f10x.h" void delay(uint32_t time) { time=time*2318; while(time) time--; } int main() { RCC->APB2ENR |= 1<<4; GPIOC->CRH |=0x00000002; while(1) { GPIOC->BSRR= 1<<8; delay(1000); GPIOC->BRR = 1<<8; } }
Buton kullanma kodlar ve videosu
#include "stm32f10x.h" // Device header _Bool x=0; int main() { RCC->APB2ENR |= (1 << 2); /* Enable GPIOA clock */ RCC->APB2ENR |= (1 << 4); /* Enable GPIOC clock */ GPIOA->CRL &= 0x00000000; // Set to Zero Port A GPIOA->CRL |= 0x00000008; // Set as a input PA0 GPIOC->CRH = 0x00000022; // Set as a output PC8 & PC9 while (1) { x=(GPIOA->IDR & 0x0000001); if(x) // PA0 ON (Led4) // { GPIOC->BSRR = 1<<8; // LED ON PC8 } else { GPIOC->BRR = 1<<8; // LED OFF PC8 } } }
22 Haziran 2018 Cuma
STM32 VL Discovery ile ARM Programlama - Buton ile Led Yakma
Anlatımı YouTube videomda bulabilirsiniz.
Video ve Kodlar;
Video ve Kodlar;
#include <stm32f10x.h> // Device header #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" void delay_ms(uint32_t the_time) { the_time=the_time*2381; while(the_time) { the_time--; } } int main() { GPIO_InitTypeDef GPIO_InitStructure; uint8_t input_button; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //Led Configuration GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); //Button Configuration GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); while(1) { input_button = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0); if(input_button) { GPIO_SetBits(GPIOC, GPIO_Pin_9); GPIO_ResetBits(GPIOC, GPIO_Pin_8); } else { GPIO_ResetBits(GPIOC, GPIO_Pin_9); GPIO_SetBits(GPIOC, GPIO_Pin_8); } } }
STM32 VL Discovery ile ARM Programlama - GPIO Ayarları & Led Yakma
STM32 VL Discovery kartı ile ilgili led yakma YouTube videomu, yazdığım kod ile birlikte aşağıda bulabilirsiniz.
STM32 VL Discovery ile ARM Programlama - Basit Delay Fonksiyonu
Delay fonksiyonunu kullanmak için şu ana kadar 2 yöntem uyguladım. 1.yöntem hızlıca oluşturduğum ve çok da sağlam olmayan bir yöntemdi.
Video ve kodlar;
Video ve kodlar;
void delay_ms(uint32_t the_time) { the_time=the_time*2381; while(the_time) { the_time--; } }
STM32 VL Discovery ile ARM Programlama - Giris & Keil ile Proje Olusturma
Arkadaşlar Merhaba,
Bu video ile ARM derslerine başlamış bulunmaktayım.Elimden geldiğince haftada 1 ya da 2 haftada 1 video atmaya gayret göstereceğim.Ara sıra arduino ile ilgili sensör uygulama videoları da devam edecek.
"Arduinotik" olan kanalımın ismi de bundan böyle "Gömülü Mühendis" olacak.
STM32F4 kartları çok pahalı o yüzden caydırıcı olabiliyor. Benim kullandığım bu kadar ona nazaran daha ucuz ve ARM öğrenmenizi şevklendirecek bir fiyatta. Linki burda mutlaka inceleyin.
https://www.robolinkmarket.com/stm32vl-discovery-gelistirme-karti.html
ve son olarak abone olmayı unutmayın, nedeni de aşağıdaki paragraf :(
YouTube açıkladığı son politikaya göre 1000 abone altı kanalların ve yıllık 4000 saat izlenmesi olmayan kanalların para kazanma özelliklerini kapatacağını açıkladı. Videoların devamlılığı ve bu konuda kanalıma destek olmak isterseniz lütfen kanalıma abone olmayı unutmayın. İyi seyirler...
Bu video ile ARM derslerine başlamış bulunmaktayım.Elimden geldiğince haftada 1 ya da 2 haftada 1 video atmaya gayret göstereceğim.Ara sıra arduino ile ilgili sensör uygulama videoları da devam edecek.
"Arduinotik" olan kanalımın ismi de bundan böyle "Gömülü Mühendis" olacak.
STM32F4 kartları çok pahalı o yüzden caydırıcı olabiliyor. Benim kullandığım bu kadar ona nazaran daha ucuz ve ARM öğrenmenizi şevklendirecek bir fiyatta. Linki burda mutlaka inceleyin.
https://www.robolinkmarket.com/stm32vl-discovery-gelistirme-karti.html
ve son olarak abone olmayı unutmayın, nedeni de aşağıdaki paragraf :(
YouTube açıkladığı son politikaya göre 1000 abone altı kanalların ve yıllık 4000 saat izlenmesi olmayan kanalların para kazanma özelliklerini kapatacağını açıkladı. Videoların devamlılığı ve bu konuda kanalıma destek olmak isterseniz lütfen kanalıma abone olmayı unutmayın. İyi seyirler...
28 Ocak 2018 Pazar
Arduino - TCS3200 Renk Sensörü Uygulaması
Bu yazımda TCS3200 renk sensörünün kullanımından bahsedeceğim. Bu sensör üzerindeki fotodiyotlar aracılığıyla gördüğü rengi algılayıp çıkış veren bir sensör. TCS3200 renk sensörünü nasıl kullanacağımızdan bahsetmek gerekirse ;
Üzerinde bulunan 4 inputu kullanmak istediğimiz renk filtresine göre lojik-1 ve lojik-0 konumuna getireceğiz.
Daha sonra sensörün çıkışından aldığımız kare sinyalin kaç pulse olduğunu sayacağız. Bunu 3 renk için de uygulayıp, sensörün gördüğü cismin hangi renk olduğunu belirleyeceğiz.
27 Ocak 2018 Cumartesi
Arduino - C# ile PWM Degeri Gönderme
C# arayüzü ile Arduino'ya PWM gönderebildiğimiz programın nasıl oluşturulduğunu anlattığım videomu YouTube kanalımda yayınladım. İyi seyirler.
Kaydol:
Kayıtlar (Atom)