/*
Simple "Hello World" for ILI9341 LCD
https://wokwi.com/arduino/projects/308024602434470466
*/
#include "SPI.h"
#include <Adafruit_NeoPixel.h>
//Adafruit_NeoPixel WS(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel WS(10, 15, NEO_GRB + NEO_KHZ800);
uint64_t RPM;
byte SettingRPMmax = 85, SettingRPMrange2 = 55, SettingRPMrange1 = 40;
bool alternate=0;
void setup() {
Serial.begin(115200); // Any baud rate should work
Serial.println("Hello Arduino\n");
WS.begin();
WS.show();
// Meme reference: https://english.stackexchange.com/questions/20356/origin-of-i-can-haz
}
void loop() {
RPM = RPM >= SettingRPMmax * 100+1000 ? 0 : RPM + 25;
alternate = alternate ? 0 : 1;
Serial.println(RPM);
byte r, g, b;
if (RPM>=SettingRPMmax*100){
if (alternate)
r=128, g=0, b=0;
else
r=255, g=0, b=0;
}else{
if (RPM>=SettingRPMrange2*100){
r = 255, b = 0;
g = map(RPM, SettingRPMrange2*100, SettingRPMmax*100, 255, 0);
}else if (RPM>=SettingRPMrange1*100){
g = 255, b = 0;
r = map(RPM, SettingRPMrange1*100, SettingRPMrange2*100, 0, 255);
}else if (RPM<=SettingRPMrange1*100){
r = 0, b = 0;
g = map(RPM, 0, SettingRPMrange1*100, 0, 255);
}
}
byte maxWS = 10;
int RPMinc = (SettingRPMmax*100)/(maxWS/2); //only even for now pls
WS.setPixelColor(4, r, g, b);
WS.setPixelColor(5, r, g, b);
for (int i = 1; i <= (maxWS/2)-1; i++) {
if (RPM>=RPMinc*(i)) {
WS.setPixelColor(4-i, r, g, b);
WS.setPixelColor(5+i, r, g, b);
}else{
WS.setPixelColor(4-i, 0, 0, 0);
WS.setPixelColor(5+i, 0, 0, 0);
}
}
/*
if (RPM>=RPMinc) {
WS.setPixelColor(3, r, g, b);
WS.setPixelColor(6, r, g, b);
}else{
WS.setPixelColor(3, 0, 0, 0);
WS.setPixelColor(6, 0, 0, 0);
}
if (RPM>=RPMinc*2) {
WS.setPixelColor(2, r, g, b);
WS.setPixelColor(7, r, g, b);
}else{
WS.setPixelColor(2, 0, 0, 0);
WS.setPixelColor(7, 0, 0, 0);
}
if (RPM>=RPMinc*3) {
WS.setPixelColor(1, r, g, b);
WS.setPixelColor(8, r, g, b);
}else{
WS.setPixelColor(1, 0, 0, 0);
WS.setPixelColor(8, 0, 0, 0);
}
if (RPM>=RPMinc*4) {
WS.setPixelColor(0, r, g, b);
WS.setPixelColor(9, r, g, b);
}else{
WS.setPixelColor(0, 0, 0, 0);
WS.setPixelColor(9, 0, 0, 0);
}
*/
WS.show();
delay(25);
}