- Samsung Galaxy A54 - türelemjáték
- Szárba szökken a Galaxy Buds 3 Pro
- Vodafone mobilszolgáltatások
- Az iPhone 15 frissítésgaranciát, a 16 szép rendereket kapott
- MIUI / HyperOS topik
- Google Pixel topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi Mi 11 Ultra - Circus Maximus
- KuKirin G4 - a sebesség ára
Hirdetés
-
Az AI függővé teszi a bankokat a big tech-től
it A bankok szerint a nagy AI-népszerűség fokozza majd az amerikai big tech cégektől való függőségüket, ami új kockázatok teremt.
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
-
KuKirin G4 - a sebesség ára
ma Meglehetősen erős gép ez, amivel óriásit lehet taknyolni, de néhány módosítással egy igen kedvező árú rollerré alakítható.
-
Mobilarena
Okos Otthon összefoglaló
Új hozzászólás Aktív témák
-
krisztián28
csendes tag
Sziasztok!
Segítséget szeretnék kérni!
Adott egy MySensors sketch ami egy ledet hivatott dimmerelni.
Szeretném duplikálni, magyarul egy Arduino Nanoval két külön led szalagot vezérelni két külön nyomógombbal.
Programozásban nem vagyok jártas, de megpróbáltam átírni a programot viszont nem igazán úgy működik ahogy kéne.
Valaki ránézne, hogy mit rontottam el?/*
Board Transmit Receive PWM Unusable
----- -------- ------- ------------
Arduino Uno 9 8 10
Arduino Mega 46 48 44, 45
*/
#define SN "tobb_led_dimmer_teszt_proba"
#define SV "1.0"
#define MY_DEBUG
#define MY_NODE_ID 10
#define MY_RS485
#define MY_RS485_DE_PIN 2
#define MY_RS485_BAUD_RATE 9600
#include <OneButton.h>
#include <MySensors.h>
#define CHILD_ID_LIGHT1 1
#define CHILD_ID_LIGHT2 2
#define LED1_PIN 6 //nappali fehér led
#define LED2_PIN 7 //előszoba led
#define BUTTON1_PIN 3 //nappali fehér led gomb GND-re
#define BUTTON2_PIN 4 //előszoba led gomb GND-re
#define FADE_DELAY 10 // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim)
byte ledLevel;
boolean ledDimWay;
OneButton button1(BUTTON1_PIN, false);
OneButton button2(BUTTON2_PIN, false);
void setup()
{
// Setup the buttons
pinMode(BUTTON1_PIN, INPUT_PULLUP);
pinMode(BUTTON2_PIN, INPUT_PULLUP);
button1.attachClick(click1);
button1.attachDuringLongPress(press1);
button1.attachLongPressStart(pstart1);
button1.attachLongPressStop(pstop1);
button2.attachClick(click2);
button2.attachDuringLongPress(press2);
button2.attachLongPressStart(pstart2);
button2.attachLongPressStop(pstop2);
// Pull the gateway's current dim level - restore light level upon sendor node power-up
request(CHILD_ID_LIGHT1, V_DIMMER);
request(CHILD_ID_LIGHT2, V_DIMMER);
}
void presentation()
{
sendSketchInfo(SN, SV);
// Register the LED Dimmable Light with the gateway
present(CHILD_ID_LIGHT1, S_DIMMER, "nappali fehér led");
present(CHILD_ID_LIGHT2, S_DIMMER, "előszoba világítás");
}
void loop()
{
button1.tick();
button2.tick();
}
void receive(const MyMessage &message)
{
if (message.type == V_LIGHT || message.type == V_DIMMER) {
// Retrieve the power or dim level from the incoming request message
int requestedLevel = atoi(message.data);
// Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on]
requestedLevel *= ( message.type == V_LIGHT ? 100 : 1 );
// Clip incoming level to valid range of 0 to 100
requestedLevel = requestedLevel > 100 ? 100 : requestedLevel;
requestedLevel = requestedLevel < 0 ? 0 : requestedLevel;
setLED(requestedLevel);
}
}
void setLED(byte level)
{
//Fade LED to set level
int delta = (level - ledLevel) < 0 ? -1 : 1;
while (ledLevel != level)
{
ledLevel += delta;
analogWrite(LED1_PIN, (int)(ledLevel / 100. * 255) );
analogWrite(LED2_PIN, (int)(ledLevel / 100. * 255) ); //????????????????????????jó????
delay(FADE_DELAY);
}
MyMessage lightMsg1(CHILD_ID_LIGHT1, V_LIGHT);
MyMessage dimmerMsg1(CHILD_ID_LIGHT1, V_DIMMER);
MyMessage lightMsg2(CHILD_ID_LIGHT2, V_LIGHT);
MyMessage dimmerMsg2(CHILD_ID_LIGHT2, V_DIMMER);
send(lightMsg1.set(ledLevel > 0));
send(dimmerMsg1.set(ledLevel));
send(lightMsg2.set(ledLevel > 0));
send(dimmerMsg2.set(ledLevel));
}
void writeToLED()
{
analogWrite(LED1_PIN, map(ledLevel,0,100,0,255));
analogWrite(LED2_PIN, map(ledLevel,0,100,0,255));
}
void click1() {setLED(ledLevel>0 ? 0 : 100); }
void pstart1() {ledDimWay = ledLevel<100; }
void press1() {if(ledDimWay && ledLevel<100) ledLevel++; if(!ledDimWay && ledLevel>5) ledLevel--; writeToLED(); delay(25); }
void pstop1() {setLED(ledLevel); }
void click2() {setLED(ledLevel>0 ? 0 : 100); }
void pstart2() {ledDimWay = ledLevel<100; }
void press2() {if(ledDimWay && ledLevel<100) ledLevel++; if(!ledDimWay && ledLevel>5) ledLevel--; writeToLED(); delay(25); }
void pstop2() {setLED(ledLevel); }Köszönöm előre is!
Új hozzászólás Aktív témák
- OLED TV topic
- Skoda, VW, Audi, Seat topik
- Kínai, és egyéb olcsó órák topikja
- Samsung Galaxy A54 - türelemjáték
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: MárkaLánc
- Battlefield 2042
- Elektromos autók - motorok
- Szárba szökken a Galaxy Buds 3 Pro
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen