尝试在我的ESP8266上使用WS2812在Arduino中制作时钟
我是编程新手,曾尝试用RGB LED环编程时钟,但我有错误,就是不理解。 起初,我尝试使用额外的方法,但我并不真正理解它们是如何工作的,所以我只是在循环中编写代码。 如果有人能帮助写一篇对初学者友好的文章,那就太好了尝试在我的ESP8266上使用WS2812在Arduino中制作时钟,arduino,Arduino,我是编程新手,曾尝试用RGB LED环编程时钟,但我有错误,就是不理解。 起初,我尝试使用额外的方法,但我并不真正理解它们是如何工作的,所以我只是在循环中编写代码。 如果有人能帮助写一篇对初学者友好的文章,那就太好了 #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #endif #define PIN 4 #define NUMPIXELS 24 // Popular NeoPixel ring size #defi
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#endif
#define PIN 4
#define NUMPIXELS 24 // Popular NeoPixel ring size
#define Tag
#define STUNDEN
#define MINUTEN
#define SEKUNDEN
#define MULTIRSEK //Multiplikator für die Sekunden
#define MULTIMIN //Multiplikator für die Minuten
#define MULTISTU //Multiplikator für die Stunden
static int TAG = 0;
static int STUNDEN = 0;
static int MINUTEN = 0;
static int SEKUNDEN = 0;
static int MULTISEK = 0;
static int MULTIMIN = 0;
static int MULTISTU = 0;
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels
void setup() {
pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
}
void loop() {
delay(1000);
SEKUNDEN = SEKUNDEN + 1; //Die Uhr die läuft
if (SEKUNDEN = 60 * MULTISEK) {
MINUTEN = MINUTEN++;
MULTISEK = MULTISEK++;
}
if (MINUTEN = 60 * MULTIMIN) {
STUNDEN = STUNDEN++;
MULTIMIN = MULTIMIN++;
}
if (STUNDEN = 60 * MULTISTU) {
STUNDEN = STUNDEN++;
MULTISTU = MULTISTU++;
}
if (Stunden = 24) {
Tag = 0
STUNDEN = 0;
MINUTEN = 0;
SEKUNDEN = 0;
MULTIRSEK = 1; //Multiplikator für die Sekunden
MULTIMIN = 1; //Multiplikator für die Minuten
MULTISTU = 1; //Multiplikator für die Stunden
}
pixels.clear(); // Set all pixel colors to 'off'
// The first NeoPixel in a strand is #0, second is 1, all the way up
// to the count of pixels minus one.
// pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(STUNDEN, pixels.Color(0, 150, 0));
pixels.show(); // Send the updated pixel colors to the hardware.
delay(DELAYVAL); // Pause before next pass through loop
}
}
void clock() {
delay(1000);
SEKUNDEN = SEKUNDEN + 1 //Die Uhr die läuft
if (SEKUNDEN = 60 * MULTISEK) {
MINUTEN ++;
MULTISEK ++;
}
if (MINUTEN = 60 * MULTIMIN) {
STUNDEN ++;
MULTIMIN ++;
}
if (STUNDEN = 60 * MULTISTU) {
STUNDEN ++;
MULTISTU ++;
}
if (Stunden = 24) {
Tag 0
STUNDEN 0;
MINUTEN 0;
SEKUNDEN 0;
MULTIRSEK 1; //Multiplikator für die Sekunden
MULTIMIN 1; //Multiplikator für die Minuten
MULTISTU 1; //Multiplikator für die Stunden
}
}
void reset() {
Tag 0
STUNDEN 0;
MINUTEN 0;
SEKUNDEN 0;
MULTIRSEK 1; //Multiplikator für die Sekunden
MULTIMIN 1; //Multiplikator für die Minuten
MULTISTU 1; //Multiplikator für die Stunden
}
}
#包括
#ifdef__AVR__
#恩迪夫
#定义引脚4
#定义像素24//常用的NeoPixel环尺寸
#定义标记
#定义眩晕
#定义分钟数
#定义SEKUNDEN
#定义MULTIRSEK//Multipicator für die Sekunden
#定义MULTIMIN//multilikator für die Minuten
#定义MULTISTU//multilikator für die Stunden
静态int标记=0;
静态int STUNDEN=0;
静态整数分钟=0;
静态int-SEKUNDEN=0;
静态int MULTISEK=0;
静态int MULTIMIN=0;
静态int MULTISTU=0;
Adafruit_NeoPixel像素(像素、PIN、NEO_GRB+NEO_KHZ800);
#定义DELAYVAL 500//像素之间暂停的时间(以毫秒为单位)
无效设置(){
pixels.begin();//初始化新像素条对象(必需)
}
void循环(){
延迟(1000);
SEKUNDEN=SEKUNDEN+1;//Die Uhr Die läuft
如果(SEKUNDEN=60*MULTISEK){
分钟=分钟++;
MULTISEK=MULTISEK++;
}
如果(分钟=60*MULTIMIN){
STUNDEN=STUNDEN++;
MULTIMIN=MULTIMIN++;
}
如果(STUNDEN=60*MULTISTU){
STUNDEN=STUNDEN++;
MULTISTU=MULTISTU++;
}
如果(Stunden=24){
标记=0
STUNDEN=0;
分钟=0;
SEKUNDEN=0;
MULTIRSEK=1;//多重传声器für die Sekunden
MULTIMIN=1;//多路复用器für die Minuten
MULTISTU=1;//多传声器für die Stunden
}
像素。清除();//将所有像素颜色设置为“关闭”
//链中的第一个新像素是#0,第二个是1,一直向上
//到像素数减一。
//Color()接受RGB值,从0,0,0到255255
像素.setPixelColor(STUNDEN,pixels.Color(0,150,0));
pixels.show();//将更新的像素颜色发送到硬件。
delay(DELAYVAL);//在下一个通过循环之前暂停
}
}
无效时钟(){
延迟(1000);
SEKUNDEN=SEKUNDEN+1//Die Uhr Die läuft
如果(SEKUNDEN=60*MULTISEK){
分钟++;
MULTISEK++;
}
如果(分钟=60*MULTIMIN){
STUNDEN++;
MULTIMIN++;
}
如果(STUNDEN=60*MULTISTU){
STUNDEN++;
MULTISTU++;
}
如果(Stunden=24){
标记0
眩晕0;
分钟0;
SEKUNDEN 0;
MULTIRSEK 1;//多重传声器für die Sekunden
MULTIMIN 1;//多功能für die Minuten
MULTISTU 1;//多传声器für die Stunden
}
}
无效重置(){
标记0
眩晕0;
分钟0;
SEKUNDEN 0;
MULTIRSEK 1;//多重传声器für die Sekunden
MULTIMIN 1;//多功能für die Minuten
MULTISTU 1;//多传声器für die Stunden
}
}
提前谢谢这里我不想谈太多细节。请做一个C++初学者的教程,让你继续学习。您还不需要进入诸如模板或多态性之类的高级主题,但至少您应该知道基本语法 你的代码没有任何意义
#定义MULTISEK
应该做什么
特别是紧随其后的是static int MULTISEK=0代码>
如果不知道预处理器指令的作用,为什么要使用它们
if (Stunden = 24)
=
是赋值运算符。您希望在此处使用==
相等运算符
void reset() {
Tag 0
STUNDEN 0;
MINUTEN 0;
SEKUNDEN 0;
MULTIRSEK 1; //Multiplikator für die Sekunden
MULTIMIN 1; //Multiplikator für die Minuten
MULTISTU 1; //Multiplikator für die Stunden
这里,您在每一行中都缺少赋值运算符=
请理解,您的代码存在太多问题,无法在此处提供更好的答案。我建议你读一本C++书,或者至少做一些教程,直到你理解你要使用的每一个关键词。我过去是安防和维也纳的一员,现在我的工作和生活都很艰难,因为我的工作和生活都很艰难。Danke和schönen Tag.lern过去的名字是Grundragen。Datentypen、Operatoren、KontrollStructuren usw。这是一个由Mikrocontrollern umzusetzen公司负责的项目。这是施奈尔·贝扎尔和杰德·科普夫施梅尔泽诺的部分作品,我有多个作品,多个作品,每一分钟都有。60塞昆登,120塞昆登,。。。。我在60分钟内就已经完成了多个目标的任务,而在最短的一分钟内完成了所有的任务。我有一分钟的时间(我在一个现实的世界里),但我没有时间。