Съдържание:

Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python: 5 стъпки
Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python: 5 стъпки

Видео: Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python: 5 стъпки

Видео: Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python: 5 стъпки
Видео: Andonstar AD409 Pro 10.1 inch Digital PCB Microscope 300X Magnifier with HDMI output 2024, Ноември
Anonim
Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python
Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python

Arduino като икономичен, но високоефективен и функционален инструмент, програмирането му във Embedded C прави процеса на правене на проекти досадни! Модулът Arduino_Master на Python опростява това и ни позволява да извършваме изчисления, да премахваме стойностите на боклука и да начертаваме графика за визуално представяне на данните.

Ако все още не знаете за този модул, инсталирайте го с помощта на командата pip install Arduino_Master

Не се притеснявайте, ако не знаете как да използвате този модул, посетете тази връзка => Arduino_Master

Кодът за този проект обаче винаги ще бъде достъпен в тази инструкция.

Консумативи

За този проект ще ви трябва следното:

  1. Ардуино
  2. Светлозависим резистор (LDR) и
  3. Python 3 е инсталиран на вашия компютър.

Стъпка 1: Изграждане на веригата:

Изграждане на вашата верига
Изграждане на вашата верига

Ще използваме щифт A1 на Arduino за получаване на входни данни. Можете също да използвате 5V и GND щифтове на Arduino вместо батерията. Направете връзката, както следва:

  1. Свържете единия край на LDR към положителния извод на 5V батерия или към 5V щифта на Arduino.
  2. Свържете другия край на LDR паралелно към щифт A1 и отрицателен извод на батерията или GND щифт на Arduino.
  3. Използвайте резистор, за да сте сигурни, че целият ток не тече към GND, което би довело до това да не получите достатъчно силен сигнал, който да усетите на терминал A1 на Arduino. (Използвам резистор от 10k ома).

Стъпка 2: Програмиране на вашия Arduino:

Модулът Arduino_Master използва сериен монитор на Arduino за изпращане и получаване на данни. Предимството на използването на този модул е, след като програмирате своя Arduino, можете да промените програмата python самостоятелно за различни проекти, тъй като програмирането в python е сравнително по -лесно!

Код:

// Променливата LDR_1 се използва за обозначаване на щифт A1 на Arduino.

int LDR_1 = A1;

// Данните, получени от A1, ще се съхраняват в LDR_Value_1.

поплавък LDR_Value_1;

Въвеждане на низ;

void setup ()

{pinMode (LDR_1, INPUT); // LDR_1 е зададен като INPUT щифт. Serial.begin (9600); // Комуникационната скорост е зададена на 9600.}

void loop ()

{if (Serial.available ()> 0) // ако има наличен вход в серийния монитор, продължете. {вход = Serial.readString (); // Прочетете входа като низ. if (вход == "ДАННИ") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) е коефициентът на преобразуване за получаване на стойност във волта. Serial.println (LDR_Value_1); // Ако входът е равен на „DATA“, прочетете входа от LDR_1 и го отпечатайте на серийния монитор. } else int i = 0; // ако входът не е равен на "DATA", не правете нищо! }

}

Стъпка 3: Програмиране на Python към графични данни от Arduino:

Всеки LDR би имал свои собствени стойности на съпротивление и трябва да помним, че не към електронните компоненти никога не са напълно идентични при работа. Затова първо трябва да намерим напрежението при различна интензивност на светлината.

Качете следната програма във вашата Python IDE и я стартирайте:

Направете това за различен интензитет на светлината и като използвате графиката, направете заключение, например, ако интензитетът е по -малък от 1, стаята е твърде тъмна. За интензитет между 1 и 2, стаята е значително тъмна. При интензитет над 2 светлината се включва.

# Импортиране на модул Arduino_Master

от внос на Arduino_Master *

# събиране на данни

данни = филтър (ardata (8, стискане = невярно, динамично = вярно, msg = "ДАННИ", редове = 30), очакван_тип = 'брой', ограничение = [0, 5])

# ограничението е зададено на 5, тъй като използваме 5V батерия.

# Начертаване на стойностите

Графика (данни, stl = 'dark_background', label = 'Light Intensity')

Стъпка 4: Последна програма за проверка на интензитета на светлината в една стая

След като стигнете до заключение от получените данни, качете следната програма и не забравяйте да промените ограниченията според вашето заключение.

# Импортиране на модул Arduino_Master

от Arduino_Master импортиране # събиране на данни = филтър (ardata (8, стискане = невярно, динамично = вярно, msg = "DATA", редове = 50), очаквани_тип = 'num', ограничение = [0, 5]) # класифициране на данни въз основа на заключение info = за i в обхват (len (данни)): интензивност = данни ако интензитет 1 и интензитет = 2: info.append ('Light ON') # Начертаване на графиката. compGraph (данни, информация, stl = 'dark_background', label1 = 'Интензивност на светлината', label2 = 'Състояние')

Стъпка 5: Резултат:

Резултат
Резултат

Изпълнението на програмата ще отнеме минута или две, тъй като четете 50 моментални стойности от Arduino.

Ако искате да ускорите процеса, опитайте да промените параметъра линии на функцията ardata. Но не забравяйте, че колкото по -малки са наблюденията, толкова по -малко ще бъде качеството на данните.

Забележка: Ако пълната графика на горната снимка не се вижда, вижте графиката над раздела Въведение.

Препоръчано: