Elektronik Pusula HMC5883L ve WS2812

Опубликовано: 28 Август 2026
на канале: Mustafa Karakaş
2,551
56

Arkadaşlar herkese merhaba. Bu video da şimdiye kadar çok az örneğini bulduğum pusula sensörünü kullandım. Tam olarak ismi HMC5883L dünyanın manyetik alanını ölçmek ve bu değerlerle kuzey kutbunu tespit edebiliyor. Sensörden elde ettiğimiz verileri kullanarak WS2812 adreslenebilir ledlere yön bilgisi gönderdik.Temel olarak iki farklı modülü bir arada kullanmış olduk.
Bu video da geçen tüm kodlar benim yazdığım kodlardır. Umudum odur ki birileri bu kodları daha doğrusu bu fikirleri alarak başka yerlerde daha gelişmiş versiyonları ile bir takım projeler gerçekleştirir. Şimdilik mutlu kalın.
Bu arada Videoyu beğenmeyi ve yorum yapmayı unutmayın şimdilik hoşçakalın.

Önemli bir uyarı .Bi zahmet kopyala yapıştırdan uzak duralım :)
İpucu: Kendi elinizle yazdığımız kodlar çok daha eğitici olacaktır.


#include Wire.h
#include DFRobot_QMC5883.h
#include Adafruit_NeoPixel.h
#define PIN 7
#define NUMPIXELS 24
Adafruit_NeoPixel pixels = Adafruit_NeoPixel*NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800*;
DFRobot_QMC5883 compass;
float headingDegrees, deg=0;
void setup**
pixels.begin**;
compass.begin**;
if*compass.isHMC****
compass.setRange*HMC5883L_RANGE_1_3GA*;
compass.setMeasurementMode*HMC5883L_CONTINOUS*;
compass.setDataRate*HMC5883L_DATARATE_15HZ*;
compass.setSamples*HMC5883L_SAMPLES_8*;
else if*compass.isQMC****
compass.setRange*QMC5883_RANGE_2GA*;
compass.setMeasurementMode*QMC5883_CONTINOUS*;
compass.setDataRate*QMC5883_DATARATE_50HZ*;
compass.setSamples*QMC5883_SAMPLES_8*; *
*

void loop**
*
Vector norm = compass.readNormalize**;
float heading = atan2*norm.YAxis, norm.XAxis*;
// Bulunduğunuz yerin kalibrasyonu "Etimesgut 5, 54"
float declinationAngle = *5.0 + *54.0 / 60.0* / *180 / PI*;
heading += declinationAngle;

if heading * 0*
heading += 2 * PI;


if *heading * 2 * PI*
heading -= 2 * PI;
*
for*byte a=0;a*200;a++*
*headingDegrees = heading * 180/PI;
deg=headingDegrees+deg;*

headingDegrees=deg/200; deg=0;

headingDegrees=360-headingDegrees;
byte f=map*headingDegrees,360,0,24,0*;
for*byte a=0;a*24;a++*
*pixels.setPixelColor*a, pixels.Color*0,0,0**;
pixels.show**; *

pixels.setPixelColor*f, pixels.Color*25,0,0**;
pixels.setPixelColor*f+1, pixels.Color*5,15,0**;
pixels.setPixelColor*f-1, pixels.Color*5,15,0**;
pixels.show**;
delay*100*;
*


NOT : TouTube izin vermediği için Tüm parantezleri * ile değiştirdim.

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

MUSIC:© NCS releases are free to be used and monetised in user-generated content (UGC) made by independent content creators in video content on YouTube & Twitch, without the fear of copyright claims.

►NO COPYRIGHT Upbeat Drums & Percussion Background Music For Typography Video Copyright Free / No Copyright Music / Clap Music No Copyright / Action Drums / Copyright free Music