Hi, i have some problems with arduino nano, 433mhz receiver and pwm!
If i change the value of the pwm signal (witch control led brightness) the receiver stop working! I found this user witch has a similar circuit and similar problems.
http://forum.arduino.cc/index.php?topic=323244.0
The thread is a bit old and it didn't solved my problem, if i connect the 12v directly into the VIN pin there is the same problem, and also i have the necessity to power it by the usb. At the moment i have solved the problem by powering the 433mhz receiver with an external battery, but i want to power it from arduino!
The whiring is almos the same as the user in the thread that i have linked, and this is my code (but it almost useless in this case)
int luminositab = 255;
int luminositaa = 255;
bool down = false;
int l;
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();void setup() {
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(7,LOW);
Serial.begin(9600);
mySwitch.enableReceive(0);
Serial.println("Avvio");analogWrite(3,luminositab);
analogWrite(5,luminositaa);}
void loop() {
if (mySwitch.available()) {int value = mySwitch.getReceivedValue();
value = value - 14483200;if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received ");
Serial.println( mySwitch.getReceivedValue() );
switch (value) {case 1: {
if (luminositab > 0) {
luminositab = 0;
} else {
luminositab = 255;
}if (luminositaa > 0) {
luminositaa = 0;
} else {
luminositaa = 255;
}} break;
case 5: {
if (luminositab < 255) {
luminositab = luminositab + 51;
} else if (luminositaa < 255) {
luminositaa = luminositaa + 51;
}} break;
case 6: {
if (luminositab > 0) {
luminositab = luminositab - 51;
}
if (luminositaa > 0) {
luminositaa = luminositaa - 51 ;
}} break;
case 7: {
luminositab = 255 ;
luminositaa = 255;
} break;case 8: {
luminositab = 128 ;
luminositaa = 128;
} break;case 9: {
luminositab = 60 ;
luminositaa = 60;
} break;}
analogWrite(3,luminositab);
analogWrite(5,luminositaa);
}
mySwitch.resetAvailable();
}if (Serial.available() > 0) {
l = Serial.parseInt();
switch (l) {
case 0: luminositab = 0; break;
case 1: luminositab = 10; break;
case 2: luminositab = 25; break;
case 3: luminositab = 50; break;
case 4: luminositab = 100; break;
case 5: luminositab = 150; break;
case 6: luminositab = 200; break;
case 7: luminositab = 255; break;
case 8: luminositaa = 0; break;
case 9: luminositaa = 10; break;
case 10: luminositaa = 25; break;
case 11: luminositaa = 50; break;
case 12: luminositaa = 100; break;
case 13: luminositaa = 150; break;
case 14: luminositaa = 200; break;
case 15: luminositaa = 255; break;}
analogWrite(3,luminositab);
analogWrite(5,luminositaa);Serial.flush();
}/*
if (luminosita < 255 & down == false) {
luminosita++;
delay(delayl);
}if (luminosita == 255) {
down = true;
}if (luminosita <= 255 & down == true) {
luminosita--;
delay(delayl);
}if (luminosita == 1) {
down = false;
}Serial.println(luminosita); */
}
Can somebody help me? I tried everything but at the moment the only solution is powering it by an exernal supply! How can i solve this? Thanks!
Update 1: i found this user witch have a similar problem, it's a good idea to use capacitor? And how i can connect it?

