Zum Inhalt springen

#8 Mein Timer-Projekt mit PicoBricks

22 Nov 2023
#8 My Timer Project With PicoBricks

Zeit zu messen ist eine einfache, aber wichtige Aufgabe, die wir in unserem täglichen Leben erledigen, ohne es zu merken. Ein Chirurg in der Chirurgie, ein Geschäftsmann, der versucht, an einer Besprechung teilzunehmen, ein Athlet, der gewinnen möchte, ein Student, der versucht, eine Prüfung oder ein Schachspiel zu beenden … Zur Zeitmessung werden intelligente Armbanduhren, Telefone und sogar professionelle Chronometer verwendet. Zeit ist eine Variable, die in elektronischen Systemen sehr genau genutzt werden sollte. Zum Beispiel eine Waschmaschine; Wie lange sich die Trommel im Uhrzeigersinn dreht, wie weit gegen den Uhrzeigersinn, wie viele Sekunden Wasser fließen muss, um das Waschmittel aufzulösen, werden durch Zeitmessung erledigt. Um Projekte zu entwickeln, bei denen Zeit von entscheidender Bedeutung ist, müssen Sie wissen, wie man sie nutzt. 

In diesem Projekt erstellen Sie Ihr eigenes Zeitmessgerät mit PicoBricks, OLED-Display, Knopf und Potentiometer Module. Ein Timer…

Details und Algorithmus

Wenn Picobricks startet, platzieren wir eine Erklärung auf dem Bildschirm, die das Projekt vorstellt und Anweisungen enthält. Wenn der Benutzer das Potentiometer dreht, wird eine Zeit im Bereich von 0 bis 60 Minuten eingestellt. Wenn der Benutzer die Taste von Picobricks drückt, nachdem er die Zeit mit dem Potentiometer festgelegt hat, beginnt der Countdown in Minuten und Sekunden auf dem Bildschirm. Wenn die Taste gedrückt wird, während die Zeit rückwärts läuft, stoppt der Timer und zeigt die verbleibende Zeit auf dem Bildschirm an. Wenn der Minuten-, Sekunden- und Sekundenwert Null erreicht, ohne dass die Taste gedrückt wird, wird auf dem Bildschirm eine Meldung angezeigt, dass die Zeit abgelaufen ist, und das Programm wird gestoppt.

Komponenten

1X PicoBricks

Schaltplan

Sie können die Module von Picobricks ohne Verkabelung programmieren und betreiben. Wenn Sie die Module getrennt von der Platine verwenden möchten, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.

MicroBlocks-Codes der PicoBricks

Sie können auf die Microblocks-Codes des Projekts zugreifen, indem Sie das Bild auf die Registerkarte „Microblocks Run“ ziehen oder auf die Schaltfläche klicken:

 

Registerkarte „Mikroblöcke ausführen“.

MicroPython-Codes der PicoBricks

 


Vom Maschinenimport Pin, I2C, ADC, Timer #, um auf die Hardware-Picobricks zuzugreifen
aus der picobricks importSSD1306_I2C #oled-Bibliothek
utime #time-Bibliothek importieren

BREITE=128HÖHE=64
#Definieren Sie die Breiten- und Höhenwerte

sda=machine.Pin(4)
scl=machine.Pin(5)
#Wir definieren SDA- und SCL-Pins für die Kommunikation zwischen Pfaden
i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)#Bestimmen Sie die Frequenzwerte

oled =SSD1306_I2C(128,64, i2c)
Pot =ADC(Pin(26))
Schaltfläche =Pin(10,Pin.IN,Pin.PULL_DOWN)
#bestimmen Sie unsere Eingangs- und Ausgangspins

oled.fill(0)
oled.show()
#Auf OLED anzeigen

time=Timer()
time2=Timer()
time3=Timer()
#Timer definieren

Def. Minute (Timer):
    globaler setTimer
    setTimer -=1

def Sekunde(Timer):
    globale Sek
    sec-=1if sec==-1:
        Sek. = 59

def msekunde(timer):
    globale ms
    msec-=1wenn msec==-1:
        ms=99
#Wir bestimmen die Inkremente der Minuten-Sekunden- und Millisekunden-Werte.
Sek. = 59
ms=99

globaler setTimer

while button.value()==0:
    setTimer=int((pot.read_u16()*60)/65536)+1
    oled.text("Timer einstellen:"+str(setTimer)+" min",0,12)
    oled.show()
    utime.sleep(0.1)
    oled.fill(0)
    oled.show()
#Bei nicht gedrückter Taste wird der vom Potentiometer ermittelte Wert angezeigt
wird auf dem OLED-Bildschirm gedruckt.

setTimer-=1

time.init(mode=Timer.PERIODIC,period=60000, callback=minute)
time2.init(mode=Timer.PERIODIC,period=1000, callback=second)
time3.init(mode=Timer.PERIODIC,period=10, callback=msecond)
#Wir ermitteln die Perioden Minuten, Sekunden und Millisekunden.
utime.sleep(0.2)#warte0,2 Sekunden

while button.value()==0:#burda hata var0>>>>1 olucak çalıştıramadığım için themedim.
    oled.text("min:"+str(setTimer),50,10)
    oled.text("sec:"+str(sec),50,20)
    oled.text("ms:"+str(ms),50,30)
    oled.show()
    utime.sleep(0.01)
    oled.fill(0)
    oled.show()if(setTimer==0 und sec==0 und msec==99):
        utime.sleep(0.1)
        msec=0break;
#Wenn die Taste gedrückt wird, werden die Min-Sek-Ms-Werte gedruckt
in den ermittelten x- und y-Koordinaten auf den OLED-Bildschirm übertragen.

oled.text(str(setTimer),60,10)
oled.text(str(sec),60,20)
oled.text(str(ms),60,30)
oled.text("Die Zeit ist vorbei!",10,48)
oled.show()
#Drucken Sie die Werte für Minuten, Sekunden, Millisekunden und „Zeit ist ab“.
zu den auf dem OLED-Bildschirm ermittelten X- und Y-Koordinaten.

Arduino C-Codes der PicoBricks

 


#enthalten
#include „ACROBOTIC_SSD1306.h“

int Minute;
int Sekunde =59;
int Millisekunde =9;
int setTimer;voidsetup(){// Geben Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen:pinMode(10,INPUT);pinMode(26,INPUT);

  Wire.begin();
  oled.init();
  oled.clearDisplay();}voidloop(){// Fügen Sie hier Ihren Hauptcode ein, um ihn wiederholt auszuführen:
  oled.setTextXY(1,2);
  oled.putString("<>");
  oled.setTextXY(3,1);
  oled.putString("Bitte verwenden Sie");
  oled.setTextXY(4,1);
  oled.putString("Potentiometer");
  oled.setTextXY(5,0);
  oled.putString("zum Einstellen des Timers");delay(3000);
  oled.clearDisplay();while(!(digitalRead(10)==1)){
    setTimer =(analogRead(26)*60)/1023;
    oled.setTextXY(3,1);
    oled.putString("set to:");
    oled.setTextXY(3,8);
    oled.putString(String(setTimer));
    oled.setTextXY(3,11);
    oled.putString("min.");}
    oled.clearDisplay();
    oled.setTextXY(1,1);
    oled.putString("Der Countdown");
    oled.setTextXY(2,3);
    oled.putString("hat begonnen!");while(!(digitalRead(10)==1)){
    Millisekunde =9-(millis()%100)/10;
    Sekunde =59-(millis()%60000)/1000;
    Minute =(setTimer-1)-((millis()%360000)/60000);

    oled.setTextXY(5,3);
    oled.putString(String(minute));
    oled.setTextXY(5,8);
    oled.putString(String(second));
    oled.setTextXY(5,13);
    oled.putString(String(milisecond));
    oled.setTextXY(5,6);
    oled.putString(":");
    oled.setTextXY(5,11);
    oled.putString(":");}
    oled.setTextXY(5,3);
    oled.putString(String(minute));
    oled.setTextXY(5,8);
    oled.putString(String(second));
    oled.setTextXY(5,13);
    oled.putString(String(milisecond));
    oled.setTextXY(5,6);
    oled.putString(":");
    oled.setTextXY(5,11);
    oled.putString(":");delay(10000);if(minute==0& second==0& milisecond==0){

    oled.setTextXY(5,3);
    oled.putString(String(minute));
    oled.setTextXY(5,8);
    oled.putString(String(second));
    oled.setTextXY(5,13);
    oled.putString(String(milisecond));
    oled.setTextXY(5,6);
    oled.putString(":");
    oled.setTextXY(5,11);
    oled.putString(":");
    oled.putString("-finished-");
    oled.setTextXY(7,5);delay(10000);}}
GitHub-Projektseite
Vorheriger Beitrag
Nächster Beitrag

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look
Wählen Sie Optionen

Bearbeitungsoption

Benachrichtigung wieder auf Lager

Vergleichen

Produkt ArtikelnummerBewertungBeschreibung Sammlung Verfügbarkeit Produktart Andere Details
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment