Irama pada Arduino


Saya menyambut semua dengan panik!

Dari waktu ke waktu saya cukup aktif mengayuh di taman-taman lokal. Dan kemudian saya sadar bahwa, mungkin, saya tidak memutarnya dengan benar. Saya mulai mempelajari masalah ini. Cyclopedia mengklaim bahwa irama rata-rata harus antara 80 dan 110 rpm. BAIK. Jadi Anda membutuhkan komputer sepeda dengan sensor irama. China tidak mau mengambil. Naryl Sigma 16.12 STS + irama untuk 2900 rubel. Harganya tidak murah, tetapi di halaman kryzys dan saya, bisa dikatakan, menganggur B-) Saya menemukan jawabannya dan memutuskan ... Sebenarnya, peran komputer sepeda bagi saya dimainkan oleh sekelompok iPhone, program Cyclometer , dan jam tangan Casio STB-1000- dan banyak ini cukup baik dengan saya. Dan kesaksian irama dibutuhkan hanya untuk beberapa waktu. Kemudian tubuh terbiasa dan terus memantau itu tidak masuk akal. Singkatnya, pengertian datang bahwa kita perlu mengumpulkan sampah sementara dari kotoran dan tongkat dari arduino dan saham.

Ide: kami menempatkan dua LED di roda kemudi - hijau dan merah. Hijau - irama adalah normal. Merah, masing-masing, tidak. Kemudian ia muncul dengan gagasan bahwa merah hanya akan terbakar ketika kecepatannya di atas normal. Jadi baterai akan makan lebih sedikit.

Implementasi:
- pada "bulu" dari buluh saklar dari toko radio terdekat, pada "batang penghubung" magnet neodymium
- Saya akan mendorong LED ke dalam amplop Cina
- pengontrol akan memainkan peran Arduino Pro Mini 3.3V 8MHz

Saya mengumpulkan semuanya di atas papan tempat memotong roti dengan UNO (lebih mudah untuk menjahit dan merendahkan ) Alih-alih saklar buluh, tombol jam.


Dan mengunggah sketsa dengan output data ke port.
Sketsa Tes:
int cadInt = 0;  //    0=pin2
int ledGreen = 10;  //   
int ledRed = 11;  //   

int count = 0;  //  
int lastCount;  //      
int count4period;  //     

//           :
long time;  //       
long lastTime;  //      
int period;  //   

void setup() {
  pinMode (cadInt, INPUT);  //   ()  
  pinMode (ledGreen, OUTPUT);  //    
  pinMode (ledRed, OUTPUT);  //  
  
  attachInterrupt(cadInt, swap, RISING);
  
  lastTime = millis();  //     
  
  Serial.begin(9600);  //     
}

void swap() {
  count = count+1;
}

void loop() {
  delay(5000);
  
  count4period = count - lastCount;
  
  time = millis();  //      
  period = time - lastTime;  //      
 
  Serial.println(period);  //     
  Serial.println(count4period);  //     
  
  if (count4period >= 6 && count4period <= 9)
  {
    Serial.println ("Green");  //     
    digitalWrite(ledGreen, HIGH);
    digitalWrite(ledRed, LOW);
    } else {
        if(count4period > 9){
        Serial.println ("Red");  //     
        digitalWrite(ledGreen, LOW);
        digitalWrite(ledRed, HIGH);
        } else {
          Serial.println ("LOW CADENCE");  //     
          digitalWrite(ledGreen, LOW);
          digitalWrite(ledRed, LOW);
        }
     }
      
  lastTime = time;  //     
  lastCount = count;  
}


Semuanya baik-baik saja. Semuanya berfungsi.


Kemudian dia memasang kembali semua ini di atas sebuah papan tempat memotong roti dan menempelkan sebuah cerpelai.


Ngomong-ngomong, inilah diagram:

Saya hanya punya tiga baterai, karena dua akan sedikit, dan Fritz tidak menunjukkan tiga.

Dan inilah bentuk sepeda China:


Dalam analisis dan proses penyolderan:

Saya harus menyolder hanya satu lampu, karena lampu transparan kedua sebenarnya berwarna merah.

Di sini dia terlihat seperti pada akhir operasi:

Dalam proses berpikir melalui proyek, ia berpikir bahwa alih-alih LED hijau dan merah, kita dapat menempel dua RGB, tetapi tidak ada satupun dari mereka di toko elektro terdekat, karena kita memiliki apa yang kita miliki.

Yah, saya meletakkan buluh di beberapa tabung plastik dan menutupnya dengan lem.


Jadi, bagaimana dengan biaya ... Saya harus menghabiskan hanya pada saklar buluh (15 rubel), tiga baterai AA (86 rubel) dan magnet neodymium (saya membeli mereka stsuko karena saya mencari saluran pembuangan, tetapi saya tidak siap menunggu dengan Ali (160 rubel)). Sisanya semua berbaring di dalam kotak dan menunggu aplikasi. Di sini bahkan ada kawat utama dari mouse Coolermaster yang mati yang diaplikasikan:


Masih ada beberapa orang ...







Perhatian! Saya akan senang melihat roti dengan tanduk di komentar;) Tapi serius. Bahkan, adalah mungkin untuk menggunakan Atmega8 L dengan tenang alih-alih arduino keseluruhan dan meninggalkan dua luka pada lampu, dan mengendalikannya dengan PWM. Tapi, di zashashnik saya hanya punya yang biasa dan tidak ada dudukan untuk baterai 18650 untuk menggerakkan bisnis ini. Mungkin nanti ...

... Sketsa terakhir. (Jangan menekan "programmer" yang ia tulis semampu dia):
Cadence_1.0
int cadInt = 0;  //    0=pin2
int ledGreen = 10;  //   
int ledRed = 11;  //   

int count = 0;  //  
int lastCount = 0;  //      
int count4period = 0;  //     

void setup() {
  pinMode (cadInt, INPUT);  //   ()  
  pinMode (ledGreen, OUTPUT);  //    
  pinMode (ledRed, OUTPUT);  //  
  
  attachInterrupt(cadInt, swap, RISING);
}

void swap() {
  count = count+1;
}

void loop() {
  delay(5000);
  
  count4period = count - lastCount;
  
  if (count4period >= 6 && count4period <= 9) {
    digitalWrite(ledGreen, HIGH);
    digitalWrite(ledRed, LOW);
    } else {
        if(count4period > 9){
        digitalWrite(ledGreen, LOW);
        digitalWrite(ledRed, HIGH);
        } else {
          digitalWrite(ledGreen, LOW);
          digitalWrite(ledRed, LOW);
        }
    }
      
  lastCount = count;  
}



Foto di situs:




... dan yang terbaik


Untuk video camilan:


PS Sebuah artikel tidak dapat dicetak ulang tanpa permintaan - ketik ©. Proyek dapat ditingkatkan dan dikerjakan ulang. Semua minggu kerja yang bermanfaat! Dan saya mengendarai sepeda!

PPS Today melakukan uji coba. Kesimpulan:
- Semuanya berfungsi dengan baik. Kegagalan hanya diperhatikan sekali. Rupanya, obrolan menyelinap.
- Perlu menggunakan LED RGB - di bawah sinar matahari yang cerah akan lebih jelas.

All Articles