极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 27061|回复: 2

汽车转向控制LED

[复制链接]
发表于 2020-11-21 21:11:28 | 显示全部楼层 |阅读模式
ttps://v.youku.com/v_show/id_XNDk3NDQyNzc1Ng==.html

如视频  汽车转向信号 接板子 数字2 口   有转向信号是   高电平  1   没有转向信号  低电平  0    我的功能是 高电平的时候 流水灯  然后 低电平的 时候  常亮  问题的  这个转向有规律的 大概 0.5秒闪一次  不闪 的 时候  是 低电平 信号 000   这个时候 就有问题了  高电平的 流水灯  和  低电平的 常亮  一起执行了!  我也尝试过用 延迟 卡 这个信号 发现没用了! 根本卡不中! 10~~1000 都试过~   都同步不上! 乱套了! 为什么会这样!   还有其他方法 判断 这个  一会   11111  一会  0000 的信号吗?  
#include "FastLED.h"      

#define NUM_LEDS 66         

#define DATA_PIN 3              

#define LED_TYPE WS2812        

#define COLOR_ORDER GRB        


CRGB leds[NUM_LEDS];        

void setup() {  

Serial.begin(9600);         

  pinMode(2, INPUT);     //2 接口接受转向信号

delay(1000);              

LEDS.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);  

  FastLED.setBrightness(255);                          

}

void loop() {  

  int zhuanxiang = digitalRead(2);

//------------------------检测低频信号  就常亮

if(zhuanxiang == 0 ){                 

  fill_solid(leds, 66, CRGB::White);

FastLED.show();

}

//------------------------高频流水单

if(zhuanxiang == 1 ){

for (int i = 0; i <= NUM_LEDS; i++) {   

    leds = CRGB::Orange;

   FastLED.show();   

  }

   fill_solid(leds, 66, CRGB::Black);

FastLED.show();  

  }

delay(200);   //  这里 我延迟  卡着检测!  基本没用 对不上! 循环执行下来同步不上

}
回复

使用道具 举报

发表于 2020-11-26 09:23:48 | 显示全部楼层
我想到两个办法解决这个问题,方法1,从信号入手,由于目前你是从转向灯这里接入的信号,信号是反复高低变化的,但如果从转向闪光控制器前端找信号,那么这个信号就是持续的了。方法2,信号接入不变,在Arduino检测到高电平后,执行流水灯,重复n便,比如持续30秒,在此期间循环,不检测D2口。
回复 支持 反对

使用道具 举报

发表于 2020-11-28 20:11:47 | 显示全部楼层
这个有意思,我也学习WS2812想改装下车灯。请问你的这个信号采集是怎么采集的呢?原车信号不是一般都是CAN信号吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 03:04 , Processed in 0.043170 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表