arduino上的节奏


我疯狂地打招呼!

我时不时地在当地公园里骑自行车。然后我突然意识到,也许我没有正确地将它们收卷。我开始研究这个问题。百科全书声称平均节奏应该在80至110 rpm之间。好。因此,您需要一台带有踏频传感器的自行车计算机。中国不想接受。 Naryl Sigma 16.12 STS + Cadence售价2900卢布。价格并不便宜,但是在院子里,我和Kryzys可以说是失业B-)我想通了,然后决定...实际上,自行车计算机对我的作用是由许多iPhone,自行车里程表程序Casio STB-1000手表扮演的-和我在一起很好。而节奏的证词只需要一段时间。然后,身体就会习惯了,不断对其进行监视是没有意义的。一言以蔽之,我们就需要从粪便和牲畜的粪便中收集些废料

想法:我们在方向盘上放了两个LED-绿色和红色。绿色-节奏是正常的。红色分别没有。然后他想到了只有在速度高于正常值时红色才会燃烧的想法。因此电池会少吃些。

实施:
-在附近无线电商店的簧片开关的“羽毛”上,在钕磁铁的“连杆”上
-将LED推入中文信封
-控制器将扮演Arduino Pro Mini 3.3V 8MHz 的角色,

我将整个东西组装在与UNO一起的面包板上(更容易缝制和脱胶)时钟开关代替了簧片开关。


并将带有数据输出的草图上载到端口。
测试草图:
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;  
}


一切安好。一切正常。


然后,他将所有这些重新组装在面包板上,然后放了貂皮。


顺便说一下,这是下面的图:

我只有三个电池,因为只有两个,而弗里茨却没有显示三个。

这就是中国自行车的尺寸:


在分析和焊接过程中:

我只需要焊接一盏灯,因为第二透明实际上是红色的。

在操作结束时,他的样子是这样的:

在考虑整个项目的过程中,人们认为可以插入两个RGB来代替绿色和红色LED,但是由于我们有,所以它们不在最近的电器店中。

好吧,我将簧片开关放在一些塑料管中,并用胶枪将密封


因此,费用呢...我只需要花钱买一个簧片开关(15卢布),三个AA电池(86卢布)和钕磁铁(我买了stsuko是因为我正在寻找排水管,但我还没准备好与阿里(160卢布)等)。其余的人都躺在盒子里等待申请。这甚至是死掉的Coolermaster鼠标的主要电线:


仍然人少...







注意!我很高兴在评论中看到一块有角的面包;)但是要认真。实际上,可以从容不迫地使用Atmega8 L代替整个arduino,并放弃两次切割,并通过PWM控制它们。但是,在zashashnik中,我只有通常的东西,没有18650电池的支架可以为这项业务供电。也许以后……

最后的草图。(不要打他写的“程序员”):
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;  
}



现场照片:




...并最大程度地


观看小吃视频:


附言:没有需求就无法转载文章-输入©。该项目可以进行改进和重做。一周的工作成果丰硕!我骑自行车!

PPS Today进行了测试。结论:
-一切正常。该故障仅被发现一次。显然,chat不休。
-值得使用RGB LED-在明亮的阳光下会更明显。

All Articles