Мазмұны:

Оқу бөлмесінің таймері: 7 қадам
Оқу бөлмесінің таймері: 7 қадам

Бейне: Оқу бөлмесінің таймері: 7 қадам

Бейне: Оқу бөлмесінің таймері: 7 қадам
Бейне: 😔ОСЫ 7 ҚАТЕ ҮШІН АДАМДАР СІЗДІ БАҒАЛАМАЙДЫ! 2024, Шілде
Anonim
Оқу бөлмесінің таймері
Оқу бөлмесінің таймері
Оқу бөлмесінің таймері
Оқу бөлмесінің таймері
Оқу бөлмесінің таймері
Оқу бөлмесінің таймері

Оқу кабинетінің таймерін құру бойынша нұсқаулық.

1 -қадам: өзара әрекеттесуге арналған бейне

drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk

2 -қадам: Мәселе туралы мәлімдеме

Көбінесе оқу бөлмелері әрқашан алынады. Бұл адамдар бөлмеде қажет болғаннан ұзақ уақыт болғанды ұнататындықтан болады. Біз әр адамға барлығы 2 сағаттан және бөлмеге келесі топ болуды сұрай алатын адамдарды күтуге мүмкіндік беретін таймер жасадық. Неопиксельдерде RGB қолдану қалған уақытты білдіреді.

3 -қадам: Бұл қалай жұмыс істейтініне шолу

Таймер лазерлік кескішпен кесілген бөліктерден тұрады, 3 түйме, 1 жарық диоды, 1 потенциометр.

Неопиксельдер мен потенциометр NodeMCU -ге қосылады. NodeMCU дөңгелек неопиксель жолағында жарықдиодты шамдардың мөлшерін өзгерту үшін потенциометр қаншалықты бұрылғанын қайта реттеуге арналған. Сұрау батырмасы Start, Stop және Set time функциясының жұмысын тоқтатады. Бөлме ішіндегі таймердегі жарықдиодты шамдардың түсі қораптың бүйіріндегі жарықдиодты шаммен бірдей. Қораптың бүйіріндегі неопиксель ғимараттың вестибюльіндегі дисплейді білдіреді, ол қай бөлменің алынғанын және қанша уақыт қалғанын біледі. Әр бөлмеге 2 светодиод тағайындалады, бір жарық диоды бөлме қабылданғанын білдіреді, ал екіншісі жарықдиодты таймердегі түске шағылыстырады (жасыл - көбірек, содан кейін сары, содан кейін қызылға аз уақыт).

4 -қадам: материалдар мен құралдардың тізімі

-Таза акрил

-MicroUSB кабелі

www.digikey.com/product-detail/kz/stewart-…

-Нан тақтасы

www.amazon.com/gp/product/B01EV6LJ7G/ref=o…

-Потенциометр

www.alliedelec.com/honeywell-380c32500/701…

-3 түйме

www.digikey.com/product-detail/kz/te-conne…

-NodeMCU

www.amazon.com/gp/product/B07CB4P2XY/ref=o…

- 2 неопиксельді жолақ

www.amazon.com/Lighting-Modules-NeoPixel-W…

-Резисторлар

www.digikey.com/product-detail/kz/te-conne…

- Сымдар

www.digikey.com/product-detail/kz/sparkfun…

-1 жарық диоды

www.mouser.com/ProductDetail/Cree-Inc/C512…

-Ыстық желім пистолеті

www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…

-жабысқақ ленталар

www.amazon.com/VELCRO-Brand-90076-Fastener…

5 -қадам: Ғимарат тақтасынан құрылысты бастаңыз

Ғимарат тақтасынан құрылысты бастаңыз
Ғимарат тақтасынан құрылысты бастаңыз

Потенциометрдегі A0 -ге дейінгі түйреуіш

Vin to Neopixel сақинасын қосады

Потенциометрдің бір жағына 3v3

NodeMCU -да жерге қосуға барлық негіз бар

D1 түймесін сұрау үшін

Жарықдиодты сұрау үшін D2

Бастау түймесі үшін D3

Тоқтату түймесі үшін D4

D5 сақинадағы неопиксельді кіріс резисторына

D6 Neopixel кіріс жолағына резистор

6 -қадам: кодты іске қосу

Бұл сіздің жобаңыздың осы уақытқа дейін жұмыс істейтініне көз жеткізу үшін код. Таймер неопиксель сақинасындағы жарық диоды үшін бірнеше секунд болуы керек. Сіз осы уақытқа дейін жұмыс істейтінін білгеннен кейін, төмендегі мәлімдемелер көрсетілген уақытқа дейін өзгеруі керек. Егер сіз уақытты бөлу үшін өзгерту қажет мәлімдемелер болса, мен әр уақытқа '#Уақытты өзгертемін' қоямын.

Кодты қолданып көріңіз:

уақытты импорттау

импорт уақыты

ADC машиналық импортынан

импорт машинасы

неопикселді импорттау

adc = ADC (0)

pin = machine. Pin (14, machine. Pin. OUT)

np = неопиксель. NeoPixel (түйреуіш, 12)

pin2 = машина. Түйреу (12, машина. Қысқыш).

np2 = неопиксель. NeoPixel (pin2, 8)

l1 = machine. Pin (4, machine. Pin. OUT)

b1 = machine. Pin (5, machine. Pin. IN, machine. Pin. PULL_UP)

b3 = machine. Pin (2, machine. Pin. IN, machine. Pin. PULL_UP)

b2 = machine. Pin (0, machine. Pin. IN, machine. Pin. PULL_UP)

l1.мән (0)

def tglled (): # «сұрау» жарықдиодты функциясын ауыстырады

егер l1.value () == 0:

l1.мән (1)

басқа:

l1.мән (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

шындық кезінде:

# Бұл «сұраныс» жарық диодты қосатын түйме

b1temp2 = b1.value ()

егер b1temp2 емес, b1temp2:

tglled ()

уақыт.ұйқы (0.05)

b1temp1 = b1temp2

# Бұл тор

np2 [0] = np [11]

егер l1.value () == 1:

np2 [1] = (30, 0, 0)

басқа:

np2 [1] = (0, 0, 30)

np2.write ()

# Бұл жерде біз қанша уақыт қажет екенін таңдаймыз

егер t == 0 болса:

i үшін (-1, 12):

егер (l1.value () == 0):

егер (adc.read ()> = (85.34 * (i+1))):

np = (0, 0, 0)

np [11] = (0, 0, 30)

s = (i + 1)

басқа:

np = (0, 0, 30)

np.write ()

басқа:

np = (0, 0, 0)

np.write ()

# Бұл таймерді іске қосатын түйме

егер (l1.value () == 0) және (t == 0):

b2temp2 = b2.value ()

егер b2temp2 емес, b2temp2:

x += 1

t += (s * 100)

уақыт.ұйқы (0.05)

b2temp1 = b2temp2

# Бұл түйме таймерді аяқтайды

егер (l1.value () == 0):

b3temp2 = b3.value ()

b3temp2 болса, b3temp2 емес:

x = 0

t = 0

уақыт.ұйық (0.05)

b3temp1 = b3temp2

# Бұл таймер

егер x> 0 болса:

t += 1

егер (t> 0) және (t <= 100): #Уақытты өзгерту

np [0] = (5, 30, 0)

np [1] = (5, 30, 0)

np [2] = (5, 30, 0)

np [3] = (5, 30, 0)

np [4] = (5, 30, 0)

np [5] = (5, 30, 0)

np [6] = (5, 30, 0)

np [7] = (5, 30, 0)

np [8] = (5, 30, 0)

np [9] = (5, 30, 0)

np [10] = (5, 30, 0)

np [11] = (5, 30, 0)

np.write ()

егер (t> 100) және (t <= 200): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (10, 30, 0)

np [2] = (10, 30, 0)

np [3] = (10, 30, 0)

np [4] = (10, 30, 0)

np [5] = (10, 30, 0)

np [6] = (10, 30, 0)

np [7] = (10, 30, 0)

np [8] = (10, 30, 0)

np [9] = (10, 30, 0)

np [10] = (10, 30, 0)

np [11] = (10, 30, 0)

np.write ()

егер (t> 200) және (t <= 300): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (15, 30, 0)

np [3] = (15, 30, 0)

np [4] = (15, 30, 0)

np [5] = (15, 30, 0)

np [6] = (15, 30, 0)

np [7] = (15, 30, 0)

np [8] = (15, 30, 0)

np [9] = (15, 30, 0)

np [10] = (15, 30, 0)

np [11] = (15, 30, 0)

np.write ()

егер (t> 300) және (t <= 400): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (20, 30, 0)

np [4] = (20, 30, 0)

np [5] = (20, 30, 0)

np [6] = (20, 30, 0)

np [7] = (20, 30, 0)

np [8] = (20, 30, 0)

np [9] = (20, 30, 0)

np [10] = (20, 30, 0)

np [11] = (20, 30, 0)

np.write ()

егер (t> 400) және (t <= 500): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (25, 30, 0)

np [5] = (25, 30, 0)

np [6] = (25, 30, 0)

np [7] = (25, 30, 0)

np [8] = (25, 30, 0)

np [9] = (25, 30, 0)

np [10] = (25, 30, 0)

np [11] = (25, 30, 0)

np.write ()

егер (t> 500) және (t <= 600): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (30, 30, 0)

np [6] = (30, 30, 0)

np [7] = (30, 30, 0)

np [8] = (30, 30, 0)

np [9] = (30, 30, 0)

np [10] = (30, 30, 0)

np [11] = (30, 30, 0)

np.write ()

егер (t> 600) және (t <= 700): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (30, 25, 0)

np [7] = (30, 25, 0)

np [8] = (30, 25, 0)

np [9] = (30, 25, 0)

np [10] = (30, 25, 0)

np [11] = (30, 25, 0)

np.write ()

егер (t> 700) және (t <= 800): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (30, 20, 0)

np [8] = (30, 20, 0)

np [9] = (30, 20, 0)

np [10] = (30, 20, 0)

np [11] = (30, 20, 0)

np.write ()

егер (t> 800) және (t <= 900): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (30, 15, 0)

np [9] = (30, 15, 0)

np [10] = (30, 15, 0)

np [11] = (30, 15, 0)

np.write ()

егер (t> 900) және (t <= 1000): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (0, 0, 0)

np [9] = (30, 10, 0)

np [10] = (30, 10, 0)

np [11] = (30, 10, 0)

np.write ()

егер (t> 1000) және (t <= 1100): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (0, 0, 0)

np [9] = (0, 0, 0)

np [10] = (30, 5, 0)

np [11] = (30, 5, 0)

np.write ()

егер (t> 1100) және (t <= 1200): #Уақытты өзгерту

np [0] = (0, 0, 0)

np [1] = (0, 0, 0)

np [2] = (0, 0, 0)

np [3] = (0, 0, 0)

np [4] = (0, 0, 0)

np [5] = (0, 0, 0)

np [6] = (0, 0, 0)

np [7] = (0, 0, 0)

np [8] = (0, 0, 0)

np [9] = (0, 0, 0)

np [10] = (0, 0, 0)

np [11] = (30, 0, 0)

np.write ()

егер t> = 1300: #Уақытты өзгерт

t = 0

x = 0

7 -қадам: Түртуді аяқтау

Енді сіз осы жерге жеткеннен кейін NodeMCU жұмыс кодын жүктеп алуыңыз керек және оның барлық бөліктері тақтаға қосылуы керек. Сіз кодты қолданып, сыртқы бөлшектерді, яғни лазерлік қаптаманы кесіп алғаннан кейін, енді сымдарды NodeMCU -ге дәнекерлей аласыз. Дәнекерлеу міндетті емес, бірақ оны қаптаманың қауіпсіздігі мен кішірейтуі мүмкін. Міне, біз жасаған лазермен кесілген бөлшектер.

Ұсынылған: