Агуулгын хүснэгт:
- Алхам 1: Тасалдал зохицуулагч
- Алхам 2: Хугацааны интервал тогтоох
- Алхам 3: Эхлэлийг таслах
- Алхам 4: Кодоо хаана нэмэх вэ
Видео: Arduino - Үе үе тасалдах: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энэхүү зааварчилгаа нь Arduino програмуудад цагийн тасалдал ашиглах тухай юм. Энэ бол Arduino илүү ихийг хийж чадна гэдгийг мэддэг боловч үүнийг хэрхэн яаж хийхээ мэдэхгүй байгаа Arduino програмистын хувьд алхам юм.
Хэрэв гүйцэтгэлийн асуудал гарвал та нэг буюу хэд хэдэн delay () функцийг ашиглаж байна гэж бодож байна. Заль мэх нь delay () функц (үүд) -ээс салж, тасалдлыг орлуулах явдал юм. Delay () функц нь Arduino -г саатал () дуусахыг хүлээх зуур юу ч хийхгүй байхыг шаарддаг. Тасалдлыг ашиглах нь саатал дуустал хүлээх зуураа таны програмд өөр зүйл хийх боломжийг олгодог. Delay () ашиглах үед бусад зүйлд ашиглаж болох асар их ашиглагдаагүй үхсэн цаг байдаг. Тасалдлыг ашиглах нь энэ асуудлыг шийддэг.
Алхам 1: Тасалдал зохицуулагч
1. Тасалдлын зохицуулагчийг програмдаа нэмээрэй. Зүгээр л тохиргооноос дээш хаа нэг газар хуулж тавь ();
const гарын үсэг зураагүй урт TIMER0_COUNT = 500; // 500 msec таймерын интервал
// TIMER0 тасалдал зохицуулагч дэгдэмхий bool цаг = худал; ISR (TIMER0_COMPA_vect) {статик тэмдэггүй урт тоо = 0; if (++ count> TIMER0_COUNT) {count = 0; цаг = үнэн; // цагийг TIMER0_COUNT ms тутамд үнэн гэж тохируулсан болно // (үндсэн горимд цагийг цэвэрлэх шаардлагатай)}
Алхам 2: Хугацааны интервал тогтоох
2. Цагийн интервалыг тохируулна уу. Энэхүү ердийн гахай нь ~ 1 msec тутамд галладаг TIMER0 тасалдал руу буцдаг.
Таны "интервал" гэдэг нь боловсруулах TIMER0 тасалдлын тоо юм. Интервал бүр ~ 1 msec байдаг тул та интервалаа идэвхжүүлэхийн өмнө хичнээн TIMER0 тасалдлыг тоолохоо тохируулж байна. IOW, TIMER0_COUNT хувьсагчийг хичнээн миллисекундээр хүлээж байгаарай. Жишээлбэл, секундын нэг хагаст 500 ашиглана уу. 3000 -ийг 3 секундын турш ашигла.
Алхам 3: Эхлэлийг таслах
3. "TIMER0 эхлүүлэх" кодыг өөрийн setup () аргад нэмнэ үү. Дахин хэлэхэд тохиргоонд () суулгаад хуулж тавь.
// *** TIMER0 эхлүүлэх ***
cli (); // бүх тасалдлыг унтраах TIMSK0 = 0; // доод чичиргээний таймерыг унтраах OCR0A = 0xBB; // дурын тасалдлын тоо TIMSK0 | = _BV (OCIE0A); // piggy буцааж тасалдах sei (); // эргэлт тасалдлыг буцааж асаах
Алхам 4: Кодоо хаана нэмэх вэ
4. "Цаг шалгах" кодыг loop () аргадаа нэмнэ үү. Loop () дээр хуулж буулгана уу.
хэрэв (цаг) {
цаг = худал; // энд ямар нэгэн зүйл хий}
"Цаг = худал;" шугам чухал. Энэ мөр байхгүй бол "loop here" програмыг ажиллуулах бүрт "энд ямар нэгэн зүйл хийх" мөрийг гүйцэтгэх болно.
Мэдээжийн хэрэг та "энд ямар нэгэн зүйл хийх" мөрөнд өөрийн үйл ажиллагааг орлуулдаг. Эхлэхийн тулд текстийг хэвлэх эсвэл LED -ийг асаах хэрэгтэй.
Чи дууссан!
Зөвлөмж болгож буй:
Arduino машины урвуу зогсоолын дохиоллын систем - Алхам алхамаар: 4 алхам
Arduino машины урвуу зогсоолын дохиоллын систем | Алхам алхамаар: Энэ төсөлд би Arduino UNO болон HC-SR04 хэт авианы мэдрэгч ашиглан Arduino автомашины урвуу зогсоолын мэдрэгчийн энгийн хэлхээг зохион бүтээнэ. Энэхүү Arduino дээр суурилсан Автомашины Урвуу дохиоллын системийг бие даасан навигаци, роботын хүрээ болон бусад хүрээний зориулалтаар ашиглаж болно
LoRa Arduino, Esp8266 эсвэл Esp32: 15 алхам бүхий бага зардалтай E32 (sx1278/sx1276) төхөөрөмж бүхий 3 км -ээс 8 км хүртэлх утасгүй холбоо: 15 алхам
LoRa Arduino, Esp8266 эсвэл Esp32 -д зориулсан бага өртөгтэй E32 (sx1278/sx1276) төхөөрөмж бүхий 3Km -аас 8Km хүртэлх утасгүй холбоо: Би Semtech цувралын LoRa төхөөрөмж дээр суурилсан EBYTE E32 -ийг удирдах номын сан, маш хүчирхэг, энгийн бөгөөд хямд төхөөрөмжтэй. 3км -ийн хувилбар энд, 8км -ийн хувилбар энд байна Тэд 3000м -ээс 8000м -ийн зайд ажиллах боломжтой бөгөөд тэдгээр нь маш олон онцлог шинж чанартай байдаг
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
DIY Arduino робот гар, Алхам алхам: 9 алхам
DIY Arduino робот гар, алхам алхмаар: Эдгээр заавар нь танд робот гарыг хэрхэн яаж хийхийг зааж өгөх болно
АНУ -ын Arduino тасалдах LED гэрэл: 6 алхам
USA Arduino Interrupt LED Brightness: Энэ төсөлд бид улаан, цагаан, цэнхэр өнгийн LED потенциометр, товчлуур бүхий LED дэлгэцийг бүтээх болно. Энэ нь хялбар сонсогдож байгаа ч бид үүнд зориулж тасалдал ашиглах болно. Тиймээс товчлуурыг дарахад потенциометрийн утга тохируулагдах болно