• 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 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 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

    // 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

    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!

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