Difference between revisions of "JeeNode notater"

From Teknologisk videncenter
Jump to: navigation, search
m (Created page with "Først skal boardet bare kunne læse en værdi og udsende en værdig. Det er her testet med en kontakt og en lysdiode <source lang=c> /// @dir blink_ports /// Ports library demo,...")
 
m
Line 75: Line 75:
 
         int pinstate = digitalRead(5);
 
         int pinstate = digitalRead(5);
 
         payload[0] = (byte)pinstate;
 
         payload[0] = (byte)pinstate;
 +
        //leds.digiWrite(pinstate);
 +
        //sendLed(1);
 +
        rf12_sendStart(0, payload, sizeof payload);
 +
        //payload[0]++;
 +
        //delay(100); // otherwise led blinking isn't visible
 +
        //sendLed(0);
 +
    }
 +
}
 +
</source>
 +
Denne kode er brugt til afstands test af det wireless signal
 +
<source lang=c>
 +
/// @dir pingPong
 +
/// Demo of a sketch which sends and receives packets.
 +
// 2010-05-17 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php
 +
 +
// with thanks to Peter G for creating a test sketch and pointing out the issue
 +
// see http://news.jeelabs.org/2010/05/20/a-subtle-rf12-detail/
 +
 +
#include <JeeLib.h>
 +
 +
Port leds (1);
 +
MilliTimer sendTimer;
 +
byte payload[2] = "a";
 +
byte needToSend;
 +
 +
 +
void setup () {
 +
    Serial.begin(57600);
 +
    Serial.println(57600);
 +
    Serial.println("Send and Receive");
 +
    rf12_initialize(1, RF12_868MHZ, 33);
 +
    pinMode(5, INPUT);
 +
    leds.mode(OUTPUT);
 +
    payload[0] = 0;
 +
}
 +
 +
void loop () {
 +
    if (rf12_recvDone() && rf12_crc == 0) {
 +
        //receiveLed(1);
 +
        //payload[0] = digitalRead(5);
 +
        Serial.print("OK ");
 +
        for (byte i = 0; i < rf12_len; ++i)
 +
        {
 +
            Serial.print((char)rf12_data[i]);
 +
           
 +
        }
 +
        leds.digiWrite((byte)rf12_data[0]);
 +
        //receiveLed(rf12_data[0]);
 +
        Serial.println();
 +
       
 +
        delay(100); // otherwise led blinking isn't visible
 +
        //receiveLed(0);
 +
    }
 +
   
 +
    if (sendTimer.poll(1000))
 +
        needToSend = 1;
 +
 +
    if (needToSend && rf12_canSend()) {
 +
        needToSend = 0;
 +
        //int pinstate = digitalRead(5);
 +
        if ((int)payload[0]==1)
 +
        {
 +
            //Serial.println((char)payload[0]);
 +
            payload[0] = 0;
 +
        }
 +
        else
 +
            payload[0] = 1;
 
         //leds.digiWrite(pinstate);
 
         //leds.digiWrite(pinstate);
 
         //sendLed(1);
 
         //sendLed(1);

Revision as of 13:52, 31 December 2012

Først skal boardet bare kunne læse en værdi og udsende en værdig. Det er her testet med en kontakt og en lysdiode

/// @dir blink_ports
/// Ports library demo, blinks leds on all 4 ports in slightly different ways.
/// @see http://jeelabs.org/2009/02/14/ports-library-for-arduino/
// 2009-02-13 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <JeeLib.h>

Port one (1);

// leds are connected to pins 2 (DIO) and 3 (GND) with a series resistor

void setup() {
	one.mode(OUTPUT);
        pinMode(5, INPUT);
}

void loop() {
        int inputval = digitalRead(5);
	one.digiWrite(inputval);  // Make the LED toggle
        //delay(1000);
}

Dernæst skal den kunne læse en værdi og sende den via wireless til en anden node og vise det på den.

/// @dir pingPong
/// Demo of a sketch which sends and receives packets.
// 2010-05-17 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

// with thanks to Peter G for creating a test sketch and pointing out the issue
// see http://news.jeelabs.org/2010/05/20/a-subtle-rf12-detail/

#include <JeeLib.h>

Port leds (1);
MilliTimer sendTimer;
byte payload[2] = "a";
byte needToSend;


void setup () {
    Serial.begin(57600);
    Serial.println(57600);
    Serial.println("Send and Receive");
    rf12_initialize(1, RF12_868MHZ, 33);
    pinMode(5, INPUT);
    leds.mode(OUTPUT);
}

void loop () {
    if (rf12_recvDone() && rf12_crc == 0) {
        //receiveLed(1);
        //payload[0] = digitalRead(5);
        Serial.print("OK ");
        for (byte i = 0; i < rf12_len; ++i)
        {
            Serial.print((char)rf12_data[i]);
            
        }
        leds.digiWrite((byte)rf12_data[0]);
        //receiveLed(rf12_data[0]);
        Serial.println();
        
        delay(100); // otherwise led blinking isn't visible
        //receiveLed(0);
    }
    
    if (sendTimer.poll(500))
        needToSend = 1;

    if (needToSend && rf12_canSend()) {
        needToSend = 0;
        int pinstate = digitalRead(5);
        payload[0] = (byte)pinstate;
        //leds.digiWrite(pinstate);
        //sendLed(1);
        rf12_sendStart(0, payload, sizeof payload);
        //payload[0]++;
        //delay(100); // otherwise led blinking isn't visible
        //sendLed(0);
    }
}

Denne kode er brugt til afstands test af det wireless signal

/// @dir pingPong
/// Demo of a sketch which sends and receives packets.
// 2010-05-17 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

// with thanks to Peter G for creating a test sketch and pointing out the issue
// see http://news.jeelabs.org/2010/05/20/a-subtle-rf12-detail/

#include <JeeLib.h>

Port leds (1);
MilliTimer sendTimer;
byte payload[2] = "a";
byte needToSend;


void setup () {
    Serial.begin(57600);
    Serial.println(57600);
    Serial.println("Send and Receive");
    rf12_initialize(1, RF12_868MHZ, 33);
    pinMode(5, INPUT);
    leds.mode(OUTPUT);
    payload[0] = 0;
}

void loop () {
    if (rf12_recvDone() && rf12_crc == 0) {
        //receiveLed(1);
        //payload[0] = digitalRead(5);
        Serial.print("OK ");
        for (byte i = 0; i < rf12_len; ++i)
        {
            Serial.print((char)rf12_data[i]);
            
        }
        leds.digiWrite((byte)rf12_data[0]);
        //receiveLed(rf12_data[0]);
        Serial.println();
        
        delay(100); // otherwise led blinking isn't visible
        //receiveLed(0);
    }
    
    if (sendTimer.poll(1000))
        needToSend = 1;

    if (needToSend && rf12_canSend()) {
        needToSend = 0;
        //int pinstate = digitalRead(5);
        if ((int)payload[0]==1)
        {
             //Serial.println((char)payload[0]);
             payload[0] = 0;
        }
        else
             payload[0] = 1;
        //leds.digiWrite(pinstate);
        //sendLed(1);
        rf12_sendStart(0, payload, sizeof payload);
        //payload[0]++;
        //delay(100); // otherwise led blinking isn't visible
        //sendLed(0);
    }
}