Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Definitions for the LEDS, switches and potentiometer on the
- software serial Sheild
- author: nns
- created 15 Oct 2014
- modified 03 Nov 2019 LGT
- */
- // hardware port definitions
- #include "SSBasicUtilities.h"
- #include "ASSP.h"
- #define LED_RED 3
- #define LED_YELLOW 5
- #define LED_PINK 6
- #define LED_WHITE 9
- #define LED_GREEN 10
- #define LED_BLUE 11
- #define EMU A1
- #define SWITCH1 A4
- #define SWITCH2 A5
- #define POTENTIOMETER A0
- #define PORT1 1
- #define PORT2 2
- #define PORT3 3
- #define PORT4 4
- /**
- configuration
- */
- void setup()
- {
- // initialize the digital pins as outputs.
- pinMode(LED_RED, OUTPUT);
- pinMode(LED_YELLOW, OUTPUT);
- pinMode(LED_PINK, OUTPUT);
- pinMode(LED_WHITE, OUTPUT);
- pinMode(LED_GREEN, OUTPUT);
- pinMode(LED_BLUE, OUTPUT);
- // Open hardware serial communications and wait for port to open:
- Serial.begin(57600);
- Serial.println("Software serial LED test program");
- // now setup the switches
- pinMode(SWITCH1, INPUT_PULLUP);
- pinMode(SWITCH2, INPUT_PULLUP);
- // now setup the POTENTIOMETER
- pinMode(POTENTIOMETER, INPUT);
- //puts the Nano into testing mode for port 3
- SerialShield.setEmuMode(5);
- //SerialShield.showASSPmessages = true;
- }
- void setLeds(boolean state) {
- Serial.print("Set LEDS to ");
- Serial.println(state);
- digitalWrite(LED_PINK, state);
- digitalWrite(LED_WHITE, state);
- digitalWrite(LED_GREEN, state);
- digitalWrite(LED_BLUE, state);
- }
- void blinkLeds() {
- delay(200); //slow things down by waiting 0.5s
- setLeds(HIGH);
- delay(200); //slow things down
- setLeds(LOW);
- }
- void cycleLeds() {
- int sw2 = digitalRead(SWITCH2);
- if (sw2 == LOW) {
- setLeds(LOW);
- digitalWrite(LED_BLUE, HIGH);
- delay(200);
- digitalWrite(LED_BLUE, LOW);
- digitalWrite(LED_GREEN, HIGH);
- delay(200);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_WHITE, HIGH);
- delay(200);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_PINK, HIGH);
- delay(200);
- digitalWrite(LED_PINK, LOW);
- delay(200);;
- digitalWrite(LED_PINK, HIGH);
- delay(200);
- digitalWrite(LED_WHITE, HIGH);
- digitalWrite(LED_PINK, LOW);
- delay(200);
- digitalWrite(LED_GREEN, HIGH);
- digitalWrite(LED_WHITE, LOW);
- delay(200);
- digitalWrite(LED_BLUE, HIGH);
- digitalWrite(LED_GREEN, LOW);
- delay(200);
- }
- }
- void valuePrint()
- {
- int value = analogRead(POTENTIOMETER);
- Serial.println("The potentiometer value is : ");
- Serial.print(value);
- }
- void manualControl()
- {
- int v = analogRead(POTENTIOMETER);
- if (v < 256)
- {
- digitalWrite(LED_PINK, HIGH);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_BLUE, LOW);
- }
- else if (v > 768)
- {
- digitalWrite(LED_PINK, LOW);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_BLUE, HIGH);
- }
- else if ((v > 256) && (v < 512))
- {
- digitalWrite(LED_PINK, LOW);
- digitalWrite(LED_WHITE, HIGH);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_BLUE, LOW);
- }
- else
- {
- digitalWrite(LED_PINK, LOW);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_GREEN, HIGH);
- digitalWrite(LED_BLUE, LOW);
- }
- }
- void cycleLedsWS2() {
- setLeds(LOW);
- digitalWrite(LED_BLUE, HIGH);
- delay(200);
- digitalWrite(LED_BLUE, LOW);
- digitalWrite(LED_GREEN, HIGH);
- delay(200);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_WHITE, HIGH);
- delay(200);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_PINK, HIGH);
- delay(200);
- digitalWrite(LED_PINK, LOW);
- delay(200);;
- digitalWrite(LED_PINK, HIGH);
- delay(200);
- digitalWrite(LED_WHITE, HIGH);
- digitalWrite(LED_PINK, LOW);
- delay(200);
- digitalWrite(LED_GREEN, HIGH);
- digitalWrite(LED_WHITE, LOW);
- delay(200);
- digitalWrite(LED_BLUE, HIGH);
- digitalWrite(LED_GREEN, LOW);
- delay(200);
- digitalWrite(LED_BLUE, LOW);
- delay(200);
- }
- void processMessageContent (char message[]) {
- if (strcmp(message, "cycle leds") == 0) {
- cycleLedsWS2();
- }
- if (strcmp(message, "blue on") == 0) {
- digitalWrite(LED_BLUE, HIGH);
- }
- if (strcmp(message, "green on") == 0) {
- digitalWrite(LED_GREEN, HIGH);
- }
- if (strcmp(message, "white on") == 0) {
- digitalWrite(LED_WHITE, HIGH);
- }
- if (strcmp(message, "pink on") == 0) {
- digitalWrite(LED_PINK, HIGH);
- }
- if (strcmp(message, "blue off") == 0) {
- digitalWrite(LED_BLUE, LOW);
- }
- if (strcmp(message, "green off") == 0) {
- digitalWrite(LED_GREEN, LOW);
- }
- if (strcmp(message, "white off") == 0) {
- digitalWrite(LED_WHITE, LOW);
- }
- if (strcmp(message, "pink off") == 0) {
- digitalWrite(LED_PINK, LOW);
- }
- if (strcmp(message, "blink leds") == 0) {
- blinkLeds();
- }
- }
- void portControl()
- {
- int v = analogRead(POTENTIOMETER);
- if (v < 256)
- {
- if (checkSerial ()) {
- setLeds(LOW);
- digitalWrite(LED_PINK, HIGH);
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer);
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(1);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Recieved message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- SerialShield.getMessageDestination();
- SerialShield.getMessageSender();
- SerialShield.getMessagePort();
- }
- }
- else if (v > 768)
- {
- if (checkSerial ()) {
- setLeds(LOW);
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer);
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(2);
- digitalWrite(LED_WHITE, HIGH);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Recieved message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- Serial.println(SerialShield.getMessageDestination());
- Serial.println(SerialShield.getMessageSender());
- Serial.println(SerialShield.getMessagePort());
- }
- }
- else if ((v > 256) && (v < 512))
- {
- if (checkSerial ()) {
- setLeds(LOW);
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer);
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(3);
- digitalWrite(LED_GREEN, HIGH);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Recieved message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- Serial.println(SerialShield.getMessageDestination());
- Serial.println(SerialShield.getMessageSender());
- Serial.println(SerialShield.getMessagePort());
- }
- }
- else
- {
- if (checkSerial ()) {
- setLeds(LOW);
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer);
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(4);
- digitalWrite(LED_BLUE, HIGH);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Recieved message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- Serial.println(SerialShield.getMessageDestination());
- Serial.println(SerialShield.getMessageSender());
- Serial.println(SerialShield.getMessagePort());
- }
- }
- }
- void emuControl()
- {
- int v = analogRead(POTENTIOMETER);
- if (v < 256)
- {
- digitalWrite(LED_PINK, HIGH);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_BLUE, LOW);
- if (checkSerial()) {
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer); // set up a message to send
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(1);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Received message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- Serial.println(SerialShield.getMessageDestination());
- Serial.println(SerialShield.getMessageSender());
- Serial.print("The message was recieved on port ");
- Serial.println(SerialShield.getMessagePort());
- }
- }
- else if (v > 768)
- {
- digitalWrite(LED_PINK, LOW);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_BLUE, HIGH);
- if (checkSerial()) {
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer); // set up a message to send
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(4);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Received message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- Serial.println(SerialShield.getMessageDestination());
- Serial.println(SerialShield.getMessageSender());
- Serial.println(SerialShield.getMessagePort());
- }
- }
- else if ((v > 256) && (v < 512))
- {
- digitalWrite(LED_PINK, LOW);
- digitalWrite(LED_WHITE, HIGH);
- digitalWrite(LED_GREEN, LOW);
- digitalWrite(LED_BLUE, LOW);
- if (checkSerial()) {
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer); // set up a message to send
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(2);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Received message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- Serial.println(SerialShield.getMessageDestination());
- Serial.println(SerialShield.getMessageSender());
- Serial.println(SerialShield.getMessagePort());
- }
- }
- else
- {
- digitalWrite(LED_PINK, LOW);
- digitalWrite(LED_WHITE, LOW);
- digitalWrite(LED_GREEN, HIGH);
- digitalWrite(LED_BLUE, LOW);
- if (checkSerial()) {
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer); // set up a message to send
- SerialShield.setMessageSender("xyz89");
- SerialShield.setMessageDestination("abc12");
- SerialShield.sendASSPMessage(3);
- }
- while (SerialShield.fetchASSPMessage()) {
- Serial.print("Received message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- Serial.println(SerialShield.getMessageDestination());
- Serial.println(SerialShield.getMessageSender());
- Serial.println(SerialShield.getMessagePort());
- }
- }
- }
- void loop() // run over and over
- {
- //digitalWrite(LED_GREEN, HIGH);
- // check the state of a switch
- emuControl();
- /*int sw1 = digitalRead(SWITCH1);
- if (sw1 == LOW){
- Serial.println("Switch 1 pressed");
- setLeds(HIGH);
- }
- else{
- setLeds(LOW);
- }
- cycleLeds();
- blinkLeds();
- cycleLEDS ();
- manualControl();
- delay(100);*/
- /*if (checkSerial ()) {
- Serial.print("Send message: ");
- Serial.println(serialBuffer);
- SerialShield.setMessageContent(serialBuffer);
- SerialShield.sendASSPMessage(portControl);
- }
- while (SerialShield.fetchASSPMessage(portControl)) {
- Serial.print("Recieved message: ");
- Serial.println(SerialShield.getMessageContent());
- processMessageContent(SerialShield.getMessageContent());
- }*/
- /*int sw2 = digitalRead(SWITCH2);
- if (sw2 == LOW) {
- SerialShield.setMessageContent("?");
- SerialShield.sendASSPMessage(3);
- }*/
- /*delay(500); //slow things down by waiting 0.5s
- digitalWrite(LED_GREEN, LOW);
- Serial.println("loop again!");
- delay(500); //slow things down*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement