added Documentation
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -1,51 +1,15 @@
|
||||
/*
|
||||
LiquidCrystal Library - Hello World
|
||||
|
||||
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
|
||||
library works with all LCD displays that are compatible with the
|
||||
Hitachi HD44780 driver. There are many of them out there, and you
|
||||
can usually tell them by the 16-pin interface.
|
||||
|
||||
This sketch prints "Hello World!" to the LCD
|
||||
and shows the time.
|
||||
|
||||
The circuit:
|
||||
* LCD RS pin to digital pin 12
|
||||
* LCD Enable pin to digital pin 11
|
||||
* LCD D4 pin to digital pin 5
|
||||
* LCD D5 pin to digital pin 4
|
||||
* LCD D6 pin to digital pin 3
|
||||
* LCD D7 pin to digital pin 2
|
||||
* LCD R/W pin to ground
|
||||
* LCD VSS pin to ground
|
||||
* LCD VCC pin to 5V
|
||||
* 10K resistor:
|
||||
* ends to +5V and ground
|
||||
* wiper to LCD VO pin (pin 3)
|
||||
|
||||
Library originally added 18 Apr 2008
|
||||
by David A. Mellis
|
||||
library modified 5 Jul 2009
|
||||
by Limor Fried (http://www.ladyada.net)
|
||||
example added 9 Jul 2009
|
||||
by Tom Igoe
|
||||
modified 22 Nov 2010
|
||||
by Tom Igoe
|
||||
modified 7 Nov 2016
|
||||
by Arturo Guadalupi
|
||||
|
||||
This example code is in the public domain.
|
||||
|
||||
http://www.arduino.cc/en/Tutorial/LiquidCrystalHelloWorld
|
||||
|
||||
*/
|
||||
/*
|
||||
* Demonstrates how to use LCDisplay in conjunction with SoftRS485:
|
||||
*
|
||||
* The main _loop_ of this program listens on the RS485 bus.
|
||||
* Whenever a message is received from the bus, it is displayed on the LCD.
|
||||
*/
|
||||
|
||||
// include the library code:
|
||||
#include <LiquidCrystal.h>
|
||||
#include <SoftRS485.h>
|
||||
|
||||
// initialize the library by associating any needed LCD interface pin
|
||||
// with the arduino pin number it is connected to
|
||||
// initialize the library by associating any needed LCD interface pin with the arduino pin number it is connected to
|
||||
const int rs = 12, en = 11, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
|
||||
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
|
||||
|
||||
@@ -54,7 +18,7 @@ void setup() {
|
||||
// set up the LCD's number of columns and rows:
|
||||
lcd.begin(16, 2);
|
||||
// Print a message to the LCD.
|
||||
lcd.print("hello, world!");
|
||||
lcd.print("LCDReceive 1.0");
|
||||
init485(2,3,8,9); // library initialization:
|
||||
// connect pin 2 to RO of Max485
|
||||
// connect pin 3 to ^RE of Max485
|
||||
@@ -62,12 +26,10 @@ void setup() {
|
||||
// connect pin 9 to DI of Max485
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
void loop() {
|
||||
if (available485()) {
|
||||
// set the cursor to column 0, line 1
|
||||
// (note: line 1 is the second row, since counting begins with 0):
|
||||
String s = get485message();
|
||||
Serial.println(s);
|
||||
lcd.clear();
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print(s);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
This sketch demonstrates, how to use the SoftRS485 library.
|
||||
This library makes use of Arduinos timer 1
|
||||
It listens on the bus and echoes incoming messages to the serial console.
|
||||
*/
|
||||
|
||||
#include <SoftRS485.h>
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
This sketch demonstrates, how to use the SoftRS485 library.
|
||||
This library makes use of Arduinos timer 1
|
||||
*/
|
||||
|
||||
#include <SoftRS485.h>
|
||||
|
||||
const int buttonPin = 10; // the number of the pushbutton pin
|
||||
boolean button_state = true;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
||||
init485(2,3,4,5); // library initialization:
|
||||
// connect pin 2 to RO of Max485
|
||||
// connect pin 3 to ^RE of Max485
|
||||
// connect pin 4 to DE of Max485
|
||||
// connect pin 5 to DI of Max485
|
||||
|
||||
pinMode(buttonPin, INPUT_PULLUP);
|
||||
}
|
||||
|
||||
void loop(){
|
||||
boolean new_state = digitalRead(buttonPin);
|
||||
if (new_state != button_state){
|
||||
button_state = new_state;
|
||||
if (new_state == LOW){
|
||||
send485("Button pressed");
|
||||
} else {
|
||||
send485("Button released");
|
||||
}
|
||||
}
|
||||
}
|
||||
39
examples/SendOnButton/SendOnButton.ino
Normal file
39
examples/SendOnButton/SendOnButton.ino
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
This sketch demonstrates, how to use the SoftRS485 library.
|
||||
It listens on the RS485 network bus.
|
||||
When the button is pressed, it sends some messages on the bus.
|
||||
*/
|
||||
|
||||
#include <SoftRS485.h>
|
||||
|
||||
#define BUTTON 7
|
||||
|
||||
boolean state = LOW;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial.println(F("This is ReceiveDemo, version 0.1"));
|
||||
|
||||
init485(2,3,4,5); // library initialization:
|
||||
// connect pin 2 to RO of Max485
|
||||
// connect pin 3 to ^RE of Max485
|
||||
// connect pin 4 to DE of Max485
|
||||
// connect pin 5 to DI of Max485
|
||||
pinMode(BUTTON,INPUT_PULLUP);
|
||||
}
|
||||
|
||||
void loop(){
|
||||
if (available485()) Serial.println("Received: "+get485message());
|
||||
|
||||
boolean new_state = digitalRead(BUTTON);
|
||||
if (new_state != state){
|
||||
if (state){
|
||||
for (int i=1; i<16; i++){
|
||||
String s = "Button pressed "+String(i);
|
||||
send485(s.c_str());
|
||||
delay(100);
|
||||
}
|
||||
} else send485("Button released!");
|
||||
state = new_state;
|
||||
}
|
||||
}
|
||||
@@ -2,10 +2,31 @@
|
||||
#include <SoftRS485.h>
|
||||
#include <SimpleDHT.h>
|
||||
|
||||
// TempSend
|
||||
//
|
||||
// This is an example for sending DHT11 measures over an RS485 multimaster network.
|
||||
// It makes use of an internal timer to periodically query values from an DHT11 sensor, connected at pin 6:
|
||||
//
|
||||
// This timer is set up in the method "setupTimer".
|
||||
// The _interrupt service routine_ (ISR) just sets a flag _readSample_, which is checked in the main loop.
|
||||
// If the _readSample_ flag is set, a measure is fetched from the sensor and transmitted via _send485_ call.
|
||||
//
|
||||
// The main loop also listens for incoming messages and echos them on the Serial console.
|
||||
|
||||
int pinDHT11 = 6;
|
||||
int count = 0;
|
||||
String s;
|
||||
boolean readSample = false;
|
||||
|
||||
SimpleDHT11 dht11(pinDHT11);
|
||||
SimpleDHT11 dht11(pinDHT11); // Sensor connected on pin 6
|
||||
|
||||
void setupTimer(){
|
||||
TCCR1A = 0; // Init Timer1A
|
||||
TCCR1B = 0; // Init Timer1B
|
||||
TCCR1B |= B00000101; // Prescaler = 1024
|
||||
OCR1A = 31250; // Timer Compare1A Register
|
||||
TIMSK1 |= B00000010; // Enable Timer COMPA Interrupt
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
@@ -15,21 +36,32 @@ void setup() {
|
||||
// connect pin 3 to ^RE of Max485
|
||||
// connect pin 4 to DE of Max485
|
||||
// connect pin 5 to DI of Max485
|
||||
while (!send485("Hello world!")) {}
|
||||
|
||||
while (!send485("Hello world!")) {} // send hello on network
|
||||
setupTimer(); // start timer for DHT 11 measurements
|
||||
}
|
||||
|
||||
/* Interrupt service routine – sets _readSample_ flag */
|
||||
ISR(TIMER1_COMPA_vect){
|
||||
OCR1A += 31250; // Advance The COMPA Register
|
||||
readSample = true;
|
||||
}
|
||||
|
||||
void loop() {
|
||||
delay(2000);
|
||||
// read without samples.
|
||||
byte temperature = 0;
|
||||
byte humidity = 0;
|
||||
int err = SimpleDHTErrSuccess;
|
||||
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
|
||||
Serial.print("Read DHT11 failed, err="); Serial.print(SimpleDHTErrCode(err));
|
||||
Serial.print(","); Serial.println(SimpleDHTErrDuration(err)); delay(1000);
|
||||
return;
|
||||
if (available485()) Serial.println("Received: "+get485message());
|
||||
|
||||
if (readSample){ // it is time to take a reading!
|
||||
readSample = false;
|
||||
byte temperature = 0;
|
||||
byte humidity = 0;
|
||||
int err = SimpleDHTErrSuccess;
|
||||
count++;
|
||||
s = "Sample "+String(count);
|
||||
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
|
||||
s += " failed, err="+String(SimpleDHTErrCode(err))+","+String(SimpleDHTErrDuration(err));
|
||||
} else {
|
||||
s += " ok: "+ String(temperature)+" *C, "+String(humidity)+"% rel";
|
||||
}
|
||||
while (!send485(s.c_str())) { /* repeat until successfull */ }
|
||||
}
|
||||
count++;
|
||||
String s = "Sample "+String(count)+" ok: "+ String(temperature)+" *C, "+String(humidity)+"% rel";
|
||||
send485(s.c_str());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user