Სარჩევი:

RaspberryPi: ჩამქრალი შუქდიოდური შუქი და გარეთ: 4 ნაბიჯი (სურათებით)
RaspberryPi: ჩამქრალი შუქდიოდური შუქი და გარეთ: 4 ნაბიჯი (სურათებით)

ვიდეო: RaspberryPi: ჩამქრალი შუქდიოდური შუქი და გარეთ: 4 ნაბიჯი (სურათებით)

ვიდეო: RaspberryPi: ჩამქრალი შუქდიოდური შუქი და გარეთ: 4 ნაბიჯი (სურათებით)
ვიდეო: ტორტი "ჭიანჭველა" საყვარელი ტორტი ბავშვობიდან! მარტივი რეცეპტი სწრაფი ტორტი ჩაისთვის! 2024, ნოემბერი
Anonim
RaspberryPi: ჩამქრალი LED და შიგნით
RaspberryPi: ჩამქრალი LED და შიგნით

შემდეგი ნაბიჯები არის ექსპერიმენტები იმის საილუსტრაციოდ, თუ როგორ მუშაობს LED- ები. ისინი აჩვენებენ, თუ როგორ ჩაქრება LED თანაბარი სიჩქარით და როგორ ჩაქრება ის შიგნით და გარეთ.

თქვენ დაგჭირდებათ:

  • RaspberryPi (მე გამოვიყენე ძველი Pi, ჩემი Pi-3 გამოიყენება, მაგრამ ნებისმიერი Pi იმუშავებს.)
  • პურის დაფა
  • 5 მმ წითელი LED
  • 330 Ω რეზისტორი (არ არის კრიტიკული 220-560 Ω იმუშავებს.)
  • დამაკავშირებელი მავთული

Pi-cobbler, რომელსაც მე ვიყენებდი ადაფრუტიდან, არ არის საჭირო, მაგრამ ეს ამარტივებს პურის დაფარვას.

WiringPi არის ბიბლიოთეკების ერთობლიობა RaspberryPi- ში C- ში. გადმოტვირთვის, ინსტალაციისა და გამოყენების ინსტრუქცია განთავსებულია

გაყვანილობის დასაყენებლად მიჰყევით ამ გვერდზე მითითებებს:

გაყვანილობის სიის სიის მისაღებად შეიყვანეთ gpio readall ბრძანების ხაზში.

Raspian wiringPi– ის ახალ ვერსიებში ნაგულისხმევია დაინსტალირებული.

ნაბიჯი 1: პულსის სიგანის მოდულაცია

Პულსის მოდულაცია
Პულსის მოდულაცია
Პულსის მოდულაცია
Პულსის მოდულაცია
Პულსის მოდულაცია
Პულსის მოდულაცია

LED- ები ყოველთვის მუშაობს იმავე ძაბვაზე, მიუხედავად სიკაშკაშის. სიკაშკაშე განისაზღვრება კვადრატული ტალღის ოსცილატორის მიერ და ძაბვის მაღალი დრო განსაზღვრავს სიკაშკაშეს. ამას ეწოდება პულსის სიგანის მოდულაცია (PWM). ეს კონტროლდება wiringPi pwmWrite (pin, n) ფუნქციით, სადაც n აქვს მნიშვნელობა 0 -დან 255 -მდე. თუ n = 2 LED იქნება ორჯერ უფრო ნათელი ვიდრე n = 1. სიკაშკაშე ყოველთვის ორმაგდება, როდესაც n ორმაგდება. ასე რომ n = 255 იქნება ორჯერ უფრო ნათელი ვიდრე n = 128.

N- ის ღირებულება ხშირად გამოიხატება პროცენტულად, რომელსაც ეწოდება მოვალეობის ციკლი. სურათებზე ნაჩვენებია ოსცილოსკოპის კვალი 25, 50 და 75% ციკლისთვის.

ნაბიჯი 2: LED და რეზისტორი

LED და რეზისტორი
LED და რეზისტორი

ეს არ არის აუცილებელი, მაგრამ რამდენიმე ასეთი ხელსაწყოს არსებობამ შეიძლება გაამარტივოს პურის დაფა.

Solder resistor მოკლე led of LED. გამოიყენეთ 220-560 Ohm რეზისტორი.

ნაბიჯი 3: დაბინდვაც კი

Un-even Dimming
Un-even Dimming

ააშენეთ სქემა, როგორც დიაგრამაში. ეს არის ზუსტად ისე, როგორც წრიული შუქნიშნის მოციმციმე. ის იყენებს wiringPi pin 1 რადგან თქვენ უნდა გამოიყენოთ PWM ჩართული pin. შეადგინეთ პროგრამა და გაუშვით. თქვენ შეამჩნევთ, რომ რაც უფრო ნათელია LED მით უფრო ნელა ანათებს იგი. ყველაზე დაბნელებულთან მიახლოებისას ის ძალიან სწრაფად დაბნელდება.

/******************************************************************

* შედგენა: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * შესრულება: sudo./fade1 * * ყველა pin ნომერი არის wiringPi ნომრები, თუ სხვა რამ არ არის მითითებული რა *********************************************** ****************/ #include int main () {wiringPiSetup (); // კონფიგურაცია საჭიროა გაყვანილობის მიერ Pi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // მარკირება/სივრცის რეჟიმი int i; ხოლო (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); დაგვიანება (10); } for (i = 0; i <256; i ++) {pwmWrite (1, i); დაგვიანება (10); }}}

მომდევნო ნაბიჯი გვიჩვენებს, თუ როგორ ჩამუქდება LED მუდმივი სიჩქარით და ერთში განცხადებისთვის.

ნაბიჯი 4: ნაბიჯი 4: ზევით და ქვევით ერთში () და თანაბარ ფასად

იმისათვის, რომ LED დაბინდეს მუდმივი სიჩქარით, შეფერხება () უნდა გაიზარდოს ექსპონენციალური სიჩქარით, რადგან სამუშაო ციკლის ნახევარი ყოველთვის გამოიმუშავებს სიკაშკაშის ნახევარს.

Ხაზი:

int d = (16-i/16)^2;

ითვლის სიკაშკაშის შებრუნებულ კვადრატს, რათა დადგინდეს შეფერხების სიგრძე. შეადგინეთ და გაუშვით ეს პროგრამა და დაინახავთ, რომ LED ჩაქრება და გამოდის მუდმივი სიჩქარით.

/******************************************************************

* შედგენა: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * შესრულება: sudo./fade2 * * ყველა pin ნომერი არის wiringPi ნომრები, თუ სხვაგვარად არ არის მითითებული რა *********************************************** ****************/ #include int main () {wiringPiSetup (); // კონფიგურაცია მოითხოვს გაყვანილობაPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // მარკირება/სივრცის რეჟიმი ხოლო (1) {int i; int x = 1; for (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // ინდექსის ინვერსიული კვადრატი pwmWrite (1, i); დაგვიანება (დ); თუ (i == 255) x = -1; // მიმართულების შეცვლა პიკზე}}}

გირჩევთ: