Моделовање електричних машина и уређаја I¶
Модел једносмерног мотора¶
На следећој слици видимо анимацију рада једносмерног мотора. Једносмерни мотор ради на принципу одбијања и привлачења електромегнетних поља. Један крај електромагнета ротора бива одбијен а други привучен. Када ротор обиђе полукруг комутатор мења поларитет на намотајима ротора чиме омогућава даљи рад мотора. Овај принцип рада је приказан на следечој слици:

Додатни задаци¶
Назив задатка: Бинарно бројање помоћу тајмера - опис и изворни код
Бинарно бројање је дато кроз два примера где промену броја изазивају или притисак тастера или тик тајмера.
Код овог бројања на бази тајмера, тајмер броји до 2000 и онда се ресетује што значи да почиње да броји од почетка. На сваке две секунде се промени вредност бираног броја чији се декадни еквивалент прикаже на дисплеју.
Eлектрична шема кола:

Повежите компоненте као на следећој слици:

Вежба је успешно урађена као добијемо следећи резултат:

Вежба је успешно урађена, ако добијемо ефекат као на следећем видеу. Кликните на видео да би се покренуо:
Ово је изворни код програма који је потребно уписати у микробит:
import microbit as mb
import microbit as mb
import time
counter = 0
offset = 0
start = time.ticks_ms()
while True:
if time.ticks_diff(time.ticks_ms(), start) >= 2000:
start = time.ticks_ms()
mb.display.scroll(counter+1)
counter = counter + 1
if counter == 16:
counter = 0
if counter == 0 or counter < 0:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 1:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 2:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 3:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 4:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 5:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 6:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 7:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 8:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 9:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 10:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 11:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 12:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
if counter == 13:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
if counter == 14:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
if counter == 15 or counter > 15:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
(Binarno_brojanje_tajmer)
Oво је изворни код програма који је потребно уписати у микробит:
import microbit as mb
import time
stanja = [(1,0,0,0),(0,1,0,0),(1,1,0,0),(0,0,1,0),(1,0,1,0),(0,1,1,0),(1,1,1,0),
(0,0,0,1),(1,0,0,1),(1,1,0,1),(0,0,1,1),(1,0,1,1),(0,1,1,1),(1,1,1,1)]
counter = 0
offset = 0
start = time.ticks_ms()
while True:
if time.ticks_diff(time.ticks_ms(), start) >= 2000:
start = time.ticks_ms()
mb.display.scroll(counter+1)
if counter == 16:
counter = 0
p1,p8,p12,p16 = stanja[counter]
mb.pin1.write_digital(p1)
mb.pin8.write_digital(p8)
mb.pin12.write_digital(p12)
mb.pin16.write_digital(p16)
(Binarno_brojanje_tajmer2)
Назив задатка: Бинарно бројање помоћу тастера - опис и изворни код
Бинарно бројање представља пројекат код кога корисник узастопним притискањем тастера доводи до тога да се на светлећим диодама приказује текући бинарни број, а на дисплеју се показује исти тај број у декадном запису.
Eлектрична шема кола:

Повежите компоненте као на следећој слици:

Вежба је успешно урађена као добијемо следећи резултат:

Вежба је успешно урађена, ако добијемо ефекат као на следећем видеу. Кликните на видео да би се покренуо:
Oво је изворни код програма који је потребно уписати у микробит:
import microbit as mb
import time
counter = 0
offset = 0
start = time.ticks_ms()
while True:
if time.ticks_diff(time.ticks_ms(), start) >= 5000:
start = time.ticks_ms()
mb.display.scroll(counter)
if button_a.is_pressed():
counter = counter + 1
while mb.button_a.is_pressed():
mb.sleep(10)
if mb.button_b.is_pressed():
counter = counter - 1
while mb.button_b.is_pressed():
mb.sleep(10)
if counter == 0 or counter < 0:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 1:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 2:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 3:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(0)
if counter == 4:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 5:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 6:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 7:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(0)
if counter == 8:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 9:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 10:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 11:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(0)
mb.pin16.write_digital(1)
if counter == 12:
mb.pin1.write_digital(0)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
if counter == 13:
mb.pin1.write_digital(1)
mb.pin8.write_digital(0)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
if counter == 14:
mb.pin1.write_digital(0)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
if counter == 15 or counter > 15:
mb.pin1.write_digital(1)
mb.pin8.write_digital(1)
mb.pin12.write_digital(1)
mb.pin16.write_digital(1)
(Binarno_brojanje_taster1)
Oво је изворни код програма који је потребно уписати у микробит:
import time
stanja = [(1,0,0,0),(0,1,0,0),(1,1,0,0),(0,0,1,0),(1,0,1,0),(0,1,1,0),(1,1,1,0),
(0,0,0,1),(1,0,0,1),(1,1,0,1),(0,0,1,1),(1,0,1,1),(0,1,1,1),(1,1,1,1)]
counter = 0
offset = 0
start = time.ticks_ms()
while True:
if time.ticks_diff(time.ticks_ms(), start) >= 5000:
start = time.ticks_ms()
mb.display.scroll(counter)
if mb.button_a.is_pressed():
counter = counter + 1
while mb.button_a.is_pressed():
mb.sleep(10)
if mb.button_b.is_pressed():
counter = counter - 1
while mb.button_b.is_pressed():
mb.sleep(10)
p1,p8,p12,p16 = stanja[counter]
mb.pin1.write_digital(p1)
mb.pin8.write_digital(p8)
mb.pin12.write_digital(p12)
mb.pin16.write_digital(p16)
(Binarno_brojanje_taster2)