
Სარჩევი:
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50



რა არის PWM?
PWM STANDS FOR PULSE WIDTH MODULATION არის ტექნიკა, რომლის მიხედვითაც პულსის სიგანე იცვლება.
ამ კონცეფციის გასაგებად განვიხილოთ საათის პულსი ან ნებისმიერი კვადრატული ტალღის სიგნალი, მას აქვს 50% სამუშაო ციკლი, რაც ნიშნავს რომ ტონი და ტოფის პერიოდი იგივეა. საერთო ხანგრძლივობა, რომლისთვისაც სიგნალი მაღალი იყო და ხანგრძლივობა, რომლის დროსაც სიგნალი დაბალი იყო, ეწოდება მთლიანი დროის მონაკვეთი.
ამ ტალღის ზემოთ ნაჩვენები სურათისთვის მოვალეობის ციკლი 50%
სამუშაო ციკლი = (ჩართვის დრო / საერთო დრო)*100
ჩართული დრო - დრო, რომლისთვისაც სიგნალი მაღალი იყო
OFF დრო - დროის მტერი, რომლის სიგნალი იყო დაბალი საერთო დრო - პულსის მთლიანი დროის პერიოდი (როგორც ჩართული, ასევე გამორთული დრო)
ნაბიჯი 1: მიკროკონტროლის შერჩევა

პროექტისათვის შესაბამისი მიკროკონტროლერის შერჩევა ეს არის პროექტის მნიშვნელოვანი ნაწილი PWM სიგნალები შეიძლება წარმოიქმნას მიკროკონტროლერებში PWM არხებით (CCP რეგისტრები). ამ პროექტისთვის მე ვგეგმავ გამყარებას pic16f877. შეგიძლიათ ჩამოტვირთოთ მონაცემთა ცხრილის ბმული მოცემულია ქვემოთ
PIC16F877a მონაცემთა ფურცელი დააწკაპუნეთ აქ
CCP მოდული პასუხისმგებელია PWM სიგნალის წარმოებაზე. CCP1 და CCP2 მულტიპლექსირებულია PORTC– ით. PORTC არის 8 ბიტიანი ფართო ორმხრივი პორტი. მონაცემების მიმართულების შესაბამისი რეგისტრი არის TRISC. TRISC ბიტის (= 1) დაყენება მიიღებს შესაბამის PORTC პინს როგორც შეყვანას. TRISC ბიტის (= 0) გასუფთავება გახდის შესაბამის PORTC პინს გამომავალს.
TRISC = 0; // ამ ბიტის გასუფთავება გახდება PORTC გამომავალი
ნაბიჯი 2: CCP მოდულის კონფიგურაცია


CCP - CAPTURE/COMPAREE/PWM MODULES
თითოეული Capture/Compare/PWM (CCP) მოდული შეიცავს 16 ბიტიან რეგისტრს, რომელიც შეიძლება მოქმედებდეს როგორც:
• 16-ბიტიანი Capture რეგისტრი
• 16 ბიტიანი შედარების რეგისტრი
• PWM Master/Slave Duty Cycle რეგისტრი
CCP1CON რეგისტრაციის კონფიგურაცია PWM რეჟიმში
რეგისტრაციის აღწერა
CCPxCON ეს რეგისტრი გამოიყენება CCP მოდულის კონფიგურაციისათვის Capture/Compare/PWM ოპერაციისათვის.
CCPRxL ეს რეესტრი ინახავს PWM- ის 8-Msb ბიტებს, ქვედა 2 ბიტი იქნება CCPxCON რეგისტრის ნაწილი.
TMR2 უფასო გაშვებული მრიცხველი, რომელიც შევადარებთ CCPR1L და PR2– ს PWM გამომუშავების შესაქმნელად.
ახლა მე გამოვიყენებ ბინარულს ბიტების წარმოსადგენად CCP1CON რეგისტრის კონფიგურაციისთვის.
მიმართეთ სურათს ზემოთ.
CCP1CON = 0b00001111;
თქვენ ასევე შეგიძლიათ hex ფორმატში
CCP1CON = 0x0F; // CCP1CON რეგისტრის კონფიგურაცია PWM რეჟიმში
ნაბიჯი 3: Timer2 მოდულის კონფიგურაცია (TMR2 რეგისტრაცია)

Timer2 არის 8-ბიტიანი ქრონომეტრი, წინასწარ შემფასებელი და პოსკალერიანი. ის შეიძლება გამოყენებულ იქნას როგორც PWM დროის ბაზა CCP მოდულის (ების) PWM რეჟიმში. TMR2 რეგისტრი იკითხება და იწერება და გაწმენდილია ნებისმიერ მოწყობილობაზე გადატვირთვისას.
ნაჩვენებია T2CON რეგისტრი
წინასწარი მასშტაბი და პოსკალორი დაარეგულირებს გამომუშავებული PWM ტალღის გამომავალ სიხშირეს.
სიხშირე = საათის სიხშირე/(4*prescaler*(PR2-TMR2)*Postcaler*count)
სადაც Tout = 1/სიხშირე
T2CON = 0b00000100;
ეს გამოიმუშავებს 2.5 KHz @ 1Mhz ან 100KHz @ 4MHz კრისტალს (პრაქტიკულად არსებობს შეზღუდვა ამ PWM სიხშირეზე მიმართეთ კონკრეტულ მონაცემთა ფურცელს უფრო დეტალურად)
hex წარმომადგენლობა
T2CON = 0x04; // ჩართეთ T2CON Prescaler და postcale კონფიგურაციის გარეშე
ნაბიჯი 4: PR2- ის კონფიგურაცია (Timer2 Period Register)
Timer2 მოდულს აქვს 8 ბიტიანი პერიოდის რეგისტრი, PR2. ტაიმერი 2 იზრდება 00h– დან, სანამ არ ემთხვევა PR2– ს და შემდეგ აღდგება 00h– მდე მომდევნო ზრდის ციკლზე. PR2 არის წასაკითხი და დასაწერი რეგისტრი. PR2 რეგისტრი ინიციალიზებულია FFh– ზე გადატვირთვისას.
PR2– ის შესაბამისი დიაპაზონის დადგენა საშუალებას მოგცემთ შეცვალოთ გენერირებული PWM ტალღის სამუშაო ციკლი
PR2 = 100; // დააწესეთ ციკლის დრო 100-ზე, სამუშაო ციკლის 0-100-დან შესაცვლელად
სიმარტივისთვის ვიყენებ PR2 = 100 -ს CCPR1L = 80 -ის დამზადებით; 80% სამუშაო ციკლის მიღწევა შესაძლებელია.
ნაბიჯი 5: დააკონფიგურირეთ CCPR1l მოდული
მას შემდეგ, რაც PR2 = 100 CCPR1l შეიძლება იყოს კონფიგურირებული სადმე 0-100 შორის სასურველი სამუშაო ციკლის მისაღებად.
ნაბიჯი 6: დაწერეთ ესკიზი თქვენზე MPLAB X IDE კოდი მოცემულია ქვემოთ

#ჩართეთ
void delay (int a) // ფუნქცია დაგვიანების შესაქმნელად {
for (int i = 0; i <a; i ++)
{
for (int j = 0; j <144; j ++);
}
}
ბათილია მთავარი ()
{TRISC = 0; // ამ ბიტის გასუფთავება გახდება PORTC გამომავალი.
CCP1CON = 0x0F; // CCP1CON რეგისტრის კონფიგურაცია PWM რეჟიმში
T2CON = 0x04; // ჩართეთ T2CON Prescaler და postcale კონფიგურაციის გარეშე.
PR2 = 100; // დააწესეთ ციკლის დრო 100-მდე სამუშაო ციკლის 0-100-დან ცვლისთვის
ხოლო (1) {
CCPR1L = 75; // გენერირებული მოვალეობის ციკლის 75% -იანი დაყოვნება (1);
}
}
მე ასევე შევიტანე მცირე მოდიფიკაცია კოდში ისე, რომ წარმოქმნილი PWM ტალღის სიხშირე
ეს არის კოდი იმიტირებული პროტეუსში და გამომავალი PWM ტალღა ნაჩვენებია ქვემოთ რომ ატვირთოთ ეს თქვენს სურათზე განვითარების დაფებზე გამოიყენეთ #ჩართეთ შესაბამისი კონფიგურაციის ბიტებით.
Გმადლობთ
გირჩევთ:
ტალღა და ამინდის საათი: 9 ნაბიჯი (სურათებით)

ტალღა და ამინდის საათი: მიუხედავად იმისა, რომ თქვენ შეგიძლიათ შეიძინოთ ანალოგური მოქცევის საათები, რომლებსაც აქვთ ერთი ხელი, რომელიც მიუთითებს ტალღა მაღალია თუ დაბალი ან სადღაც შუაში, მე მინდოდა ის, რაც მეუბნებოდა რა დროს იქნება დაბალი ტალღა. მინდოდა რაღაც შემეძლო შემეხედა
ამინდის სადგური Atmega328P-PU მიკროკონტროლით: 5 ნაბიჯი

ამინდის სადგური Atmega328P-PU მიკროკონტროლით: ახლახანს გავიარე ონლაინ უფასო კურსი edx– ით (დაარსებულია ჰარვარდის უნივერსიტეტისა და MIT– ის მიერ 2012 წელს, edX არის ონლაინ სწავლების ადგილი და MOOC პროვაიდერი, რომელიც გთავაზობთ მაღალი ხარისხის კურსებს მსოფლიოს საუკეთესო უნივერსიტეტებისა და დაწესებულებებისგან. მოსწავლეების წინა დღეს
შექმენით თქვენი საკუთარი განვითარების დაფა მიკროკონტროლით: 3 ნაბიჯი (სურათებით)

შექმენით თქვენი საკუთარი განვითარების დაფა მიკროკონტროლით: გსურდათ ოდესმე საკუთარი განვითარების დაფის გაკეთება მიკროკონტროლით და არ იცოდით როგორ. ამ ინსტრუქციურად მე გაჩვენებთ როგორ გააკეთოთ ის. ყველაფერი რაც თქვენ გჭირდებათ არის ელექტრონიკის ცოდნა, სქემების დაპროექტება და პროგრამირება. თუ თქვენ გაქვთ რაიმე ქვესტი
0-9 სეგმენტის მრიცხველი CloudX მიკროკონტროლით: 3 ნაბიჯი

0-9 სეგმენტის მრიცხველი CloudX მიკროკონტროლერთან ერთად: ამ პროექტში ჩვენ ვიყენებთ შვიდ სეგმენტიან LED ეკრანს 0-დან 9-მდე დასათვლელად. შვიდი სეგმენტის LED დისპლეი შედგება რვა LED- ისგან და შესანიშნავია ციფრების ჩვენებისათვის. ეკრანის მიერ გამოყენებული ქინძისთავები, ყველა ანოდი ან კათოდი
სკეიტბორდი PIC მიკროკონტროლით და LED- ებით: 8 ნაბიჯი (სურათებით)

სკეიტბორდი PIC მიკროკონტროლით და LED- ებით: რას მიიღებთ, როდესაც ელექტრო ინჟინერი აშენებს სკეიტბორდს ნულიდან 13 წლის ბავშვის საშობაო საჩუქრისთვის? თქვენ მიიღებთ სკეიტბორდს რვა თეთრი LED- ით (ფარები), რვა წითელი LED- ებით (უკანა სავარძლები), რომლებიც კონტროლდება PIC მიკროკონტროლის საშუალებით! და მიგრირებ