back to top

PicoBricks ile Çalar Saat Yapımı

PicoBricks ile Çalar Saat

Küresel ısınma iklimimizi gün geçtikçe daha da kötü etkliyor. Bu yüzden ülkeler küresel ısınmanın etkisini azaltmak için birtakım önlemler almakta ve bazı anlaşmalara imza atmaktadır. Küresel ısınmanın etkisini azaltmak için yenilenebilir enerji kaynaklarının kullanımı ve enerjinin verimli kullanılması da dikkat edilmesi konulardan bazılarıdır.  Örneğin şehirlerdeki sokak aydınlatmalarının hata sebebiyle açık kalması, yüksek enerji tüketen aydınlatma sistemlerinin kullanılması gibi birçok neden enerjinin verimli kullanılmasını engellemektedir. Bu hataların önüne geçmek için enerjinin yalnızca ihtiyaç duyulduğu zamanlarda kullanılmasını sağlamak için birçok elektronik ve dijital sistemler mühendisler tarafından geliştirilmektedir.

Bu projemizde PicoBricks’teki ışık sensörünü kullanarak gün ışığına göre çalışan bir alarm yapacağız.

Detaylar ve Algoritma

Bu projemizde gün ışığına göre çalışacak bir alarm yapacağımızdan söz ettik. Tasarlayacağımız bu alarm sistemi sabahları otomatik olarak ses verecek şekilde ayarlanacak. Bunun için bir LDR sensör kullanacağız. Ayrıca kullanıcıya bazı mesajlar göstermek için bir OLED ekran, alarm için bir buzzer, ışıklı geri bildirim için bir LED, alarmı kapatmak için kullanıcının basması gereken bir buton kullanacağız.

Bileşenler

1x PicoBricks

Devre Şeması

Devre Şeması

PicoBricks modülleri kablolar olmadan kodlanabilir ve çalıştırılabilir. Ancak modülleri panodan ayırarak kullanmak isterseniz bağlantılar için kablo kullanmanız gerekecektir.

MicroBlocks Kodları

Microblocks kodlarına yukarıdaki resmi Run sekmesine sürükleyerek ulaşabilirsiniz.

MicroPython Kodları

from machine import Pin,I2C,ADC,PWM  #to access the hardware on the pico
from picobricks importSSD1306_I2C  #OLED Screen Library
import utime
from picobricks importWS2812   #ws8212 library

#OLED Screen Settings
WIDTH=128HEIGHT=64

sda=machine.Pin(4)
scl=machine.Pin(5)
#initialize digital pin 4 and 5as an OUTPUTforOLED Communication

i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
neo =WS2812(pin_num=6, num_leds=1, brightness=0.3)#initialize digital pin 6as an OUTPUTfor NeoPixel

oled =SSD1306_I2C(128,64, i2c)
ldr =ADC(Pin(27))#initialize digital pin 6as an OUTPUTfor NeoPixel
button =Pin(10,Pin.IN,Pin.PULL_DOWN)#initialize digital pin 10as an INPUTfor button
buzzer =PWM(Pin(20, Pin.OUT))#initialize digital pin 20as an OUTPUTfor buzzer
buzzer.freq(1000)BLACK=(0,0,0)WHITE=(255,255,255)
#RGB black and white color code
oled.fill(0)
oled.show()

neo.pixels_fill(BLACK)
neo.pixels_show()if ldr.read_u16()<4000:
    wakeup = True
else:
    wakeup = False

while True:while wakeup==False:
        oled.fill(0)
        oled.show()
        oled.text("Good night",25,32)
        oled.show()
        #Show on OLED and print "Good night"
        utime.sleep(1)if ldr.read_u16()40000:
        wakeup= False

    utime.sleep(1)
    #wait for one second

Arduino C Kodları

#include
#ifdef __AVR__
#include
#endif
#define PIN6

#define NUMPIXELS1
Adafruit_NeoPixel pixels(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);
#include
#include "ACROBOTIC_SSD1306.h"
int button;voidsetup(){// put your setup code here, to run once:
   Wire.begin();
  oled.init();
  oled.clearDisplay();

#ifdefined(__AVR_ATtiny85__)&&(F_CPU==16000000)clock_prescale_set(clock_div_1);
#endif
  pinMode(10,INPUT);pinMode(27,INPUT);pinMode(20,OUTPUT);

  pixels.begin();
  pixels.setPixelColor(0, pixels.Color(0,0,0));
  pixels.show();}voidloop(){// put your main code here, to run repeatedly:
  oled.setTextXY(4,3);
    oled.putString("Good night");if(analogRead(27)<200){while(!(button ==1)){

        button=digitalRead(10);

        oled.setTextXY(4,2);
        oled.putString("Good morning");
        pixels.setPixelColor(0, pixels.Color(255,255,255));
        pixels.show();tone(20,494);}
        oled.clearDisplay();
        oled.setTextXY(4,1);
        oled.putString("Have a nice day");noTone(20);
        pixels.setPixelColor(0, pixels.Color(0,0,0));
        pixels.show();delay(10000);}}

Önceki İçerik
Sonraki İçerik

Son Çıkan Yazılar

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz