• Arkadaşlar merhabalar rf ile pwm kontrolü üzerinde çalışıyorum sorun şu; önce tek bi pwm sinyali ile bilgi göndermeye çalıştım vericiden sinyal gidiyor alıcı alıyor sinyali fakat led bağlamayı düşündüm çıkışına parlaklık ile anlayayım diye led bağladığım gibi alıcı duruyor sinyal almıyor sonra Q2N222 ile led kontrolü yaptım yine sıkıntı oldu en son transistör ile farklı bi yerden beslemesini verdim bu sefer çalıştı sorunsuz.. Bunun nedeni ne olabilir sizce? kodlarını aşağıda paylaşıyorum: verici kodu: #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); int pot= A5; // pot'un portu int deger; // okuyup süreceğimiz değer void setup() { Serial.begin(9600); mySwitch.enableTransmit(3); } void loop() { deger= analogRead(pot);//pot'tan değer analog değer okuması deger= map(deger, 0, 1023, 0, 255);//okunan değerin belirli değere oranlanması mySwitch.send(deger,23); delay(10);//işlemin tamamlanabilmesi için gerekli bekleme süresi Serial.println(deger); } ________________________________________________________________________________________________ alıcının kodu: #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { Serial.begin(9600); mySwitch.enableReceive(0); pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); Serial.println(value); if (value > 0) { analogWrite(5,value);} delay(5); analogWrite(6,value); } mySwitch.resetAvailable(); delay(10); } ____________________________________________________________________________________ ikinci sorum ise şöyle yine dedim ki 2 tane pwm sinyali göndereyim 2 ledi aynı anda kontrol edeyim bu sefer alıcıda serial monitörden bakıyorum bilgi gidiyor bi süre sonra duruyor bilgi almıyor hiçbir şekilde daha led bağlantısı yapmadan bunlar oluyor bazen hiç gitmiyor bilgi çok araştırdım ama buna benzer konular bulamadım burada bi konu buldum ama oradaki çözümlede işin içinden çıkamadım. bunun kodları ise: alıcının kodu: /*............................................................. Sending Multiple Variables Using VirtualWire. Receiver Author: Rodrigo Mompo Redoli For controlrobotics.rodrigomompo.com ..............................................................*/ #include <VirtualWire.h> // Sensors int Sensor1Data; int Sensor2Data; char StringReceived[22]; void setup() { // VirtualWire // Initialise the IO and ISR // Required for DR3100 Serial.begin(9600); // Bits per sec vw_setup(2000); vw_set_rx_pin(11); // Start the receiver PLL running vw_rx_start(); } // END void setup void loop(){ uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; //Taking the data from the control base if (vw_get_message(buf, &buflen)) { int i; // Message with a good checksum received, dump it. for (i = 0; i < buflen; i++) { // Fill Sensor1CharMsg Char array with corresponding // chars from buffer. StringReceived[i] = char(buf[i]); } sscanf(StringReceived, "%d,%d,%d,%d,%d,%d",&Sensor1Data, &Sensor2Data); // Converts a string to an array // Turn off light to and await next message analogWrite(Sensor1Data,5); Serial.println(Sensor1Data); delay(10); analogWrite(Sensor2Data,6); Serial.println(Sensor2Data); delay(10); } memset( StringReceived, 0, sizeof( StringReceived));// This line is for reset the StringReceived } ______________________________________________________________________________________________ vericinin kodu: /*............................................................. Sending Multiple Variables Using VirtualWire. Transmitter Author: Rodrigo Mompo Redoli For controlrobotics.rodrigomompo.com ..............................................................*/ #include <VirtualWire.h> int Sensor1Pin = A5; int Sensor2Pin = A4; int ledPin = 13; int Sensor1Data; int Sensor2Data; char Sensor1CharMsg[21]; void setup() { // Sensor(s) pinMode(Sensor1Pin,INPUT); pinMode(Sensor2Pin,INPUT); Serial.begin(9600); // VirtualWire setup vw_setup(2000); // Bits per sec vw_set_tx_pin(12);// Set the Tx pin. Default is 12 } void loop() { // Read and store Sensor Data Sensor1Data = analogRead(Sensor1Pin); Sensor2Data = analogRead(Sensor2Pin); Sensor1Data= map(Sensor1Data, 0, 1023, 0, 255); Serial.println(Sensor1Data); delay(10); Sensor2Data= map(Sensor2Data, 0, 1023, 0, 255); Serial.println(Sensor2Data); delay(10); sprintf(Sensor1CharMsg, "%d,%d,", Sensor1Data, Sensor2Data); // Turn on a light to show transmitting vw_send((uint8_t *)Sensor1CharMsg, strlen(Sensor1CharMsg)); vw_wait_tx(); // Wait until the whole message is gone // Turn off a light after transmission delay(40); }

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.