Coder Social home page Coder Social logo

ulepgyiy / modoled Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zshchance/modoled

1.0 1.0 0.0 26 KB

Modo handlamp based on atmega328 , use Arduino Fio and RGB or RGBW led.

License: GNU General Public License v2.0

C++ 32.27% C 31.99% Arduino 35.75%

modoled's Introduction

ModoLed

Modo handlamp based on atmega328 , use Arduino Fio and RGB or RGBW led.

魔豆LED(ModoLed)

设计功能

1.编码器按键行为

编码器可以检测长按、短按、连续多按的用户行为,MCU可以切换关机(低功耗并关闭所有外围设备),开机通过双击编码器按钮,由于在意外情况下,外部物体可能碰到编码器按键,容易导致意外短按或长按编码器,但一般不容易实现双击操作,这钟设计尽可能减小了意外开灯耗电的情况,但是如果用户更喜欢也更习惯双击或长按操作的话,也可以通过修改代码实现其他操作模式开机效果。设计通过长按编码器关机。

设计代码中,当用户关机状态下进行非开机的其他所有操作,MCU将忽略并继续低功耗,在开机状态下,用户双击编码器会切换灯光的工作模式,常见的工作模式有照明模式、呼吸模式、流水模式等等,在某个模式下,用户长按编码器会使灯光进入设置状态,在设置状态下通过旋转编码器可以调整灯光的相关参数,如光色、亮度、频率等,设置模式下短按编码器会切换设置参数内容,比如本来在设置白光亮度,短按一下后再旋转编码器就会设置彩色光亮度了,设置状态下长按编码器会切换回工作状态。

由于节省了开关,我们必须使用编码器完成所有的灯光操作,所以但是设计双击切换工作模式的情况下再设置双击关机将不能带来太好的用户体验,所以我们设计长按编码器关机,但是之前实际了长按编码器进入灯光参数设置状态,所以为了区分用户到底是想要关灯还是设置,必须有一个长按时间的区分,所以设计长按超过一定时间时候,灯光应该反馈提醒用户可以进入设置状态了,如果用户还是不松手,灯光应该有一个进度条提醒用户现在准备关机,在进度条走完之前用户松手,灯光将会进入设置参数的状态,如果走完了,则关闭灯光。

用户拿到灯光后,通过双击编码器可以开机,手电筒会自动亮起来,进入上次关机前的工作模式,用户可以通过双击切换功过模式,也可以通过长按编码器进入设置模式对当前工作模式相关参数进行设置相关参数,设置完成后相关参数会被保存到EEPROM中。

2.灯光响应状态指示

实现方法

芯片引脚功能定义

自定义代码的方法

#define EC11A_PIN 2 //中断0 编码器A引脚

#define EC11B_PIN 4 //编码器B引脚

#define EC11W_PIN 3 //中断1 编码器KEY引脚

#define LED1_POWER_PIN 7 //灯条1的供电控制引脚 置1开启供电

#define LED2_POWER_PIN 10 //灯条2的供电控制引脚 置1开启供电

#define LED_DATA_PIN 5 //LED灯条的数据控制引脚 VER1版本设计硬件中两个灯条共享数据引脚

#define TEMPERATURE_PIN A3 //温度传感器AD输入引脚

#define TEMPERATURE_EN_PIN 9 //温度传感器取电引脚

#define BATTERY_VOLTAGE_PIN A0 //电池电压采集引脚

#define USB_VOLTAGE_PIN A2 //USB充电状态电压采集引脚

更新固件注意事项,常见问题和解决方法

modoled's People

Contributors

zshchance avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.