From 299ee1066f15506da34beeba6e90a44891780734 Mon Sep 17 00:00:00 2001 From: Luca Tringali Date: Mon, 11 Mar 2019 22:38:22 +0100 Subject: First commit --- dissolvenza-led-distanza-ultrasuoni.ino | 41 ++++++++++++++++ ethernet-servomotore.ino | 84 +++++++++++++++++++++++++++++++++ scala-led-potenziometro.ino | 55 +++++++++++++++++++++ temperatura-lm35.ino | 15 ++++++ 4 files changed, 195 insertions(+) create mode 100644 dissolvenza-led-distanza-ultrasuoni.ino create mode 100644 ethernet-servomotore.ino create mode 100644 scala-led-potenziometro.ino create mode 100644 temperatura-lm35.ino diff --git a/dissolvenza-led-distanza-ultrasuoni.ino b/dissolvenza-led-distanza-ultrasuoni.ino new file mode 100644 index 0000000..a7be908 --- /dev/null +++ b/dissolvenza-led-distanza-ultrasuoni.ino @@ -0,0 +1,41 @@ +//HC RS04 Sensore ultrasuoni +const int triggerPort = 9; +const int echoPort = 10; +const int led = 3; + +void setup() { + +pinMode(triggerPort, OUTPUT); +pinMode(echoPort, INPUT); +pinMode(led, OUTPUT); +Serial.begin(9600); +} + +void loop() { + + +digitalWrite( triggerPort, LOW ); +//invia un impulso di 10microsec su trigger +digitalWrite( triggerPort, HIGH ); +delayMicroseconds( 10 ); +digitalWrite( triggerPort, LOW ); + +long durata = pulseIn( echoPort, HIGH ); + +long distanza = 0.034 * durata / 2; + +Serial.print("distanza: "); + +//durata in millisecondi +if( durata > 38000 ){ +Serial.println("Fuori portata "); +} +else{ +Serial.print(distanza); +Serial.println(" cm"); +int fadeValue = map(durata, 0, 38000, 0, 255) +analogWrite(led, fadeValue); +} + +delay(1000); +} diff --git a/ethernet-servomotore.ino b/ethernet-servomotore.ino new file mode 100644 index 0000000..a4045e3 --- /dev/null +++ b/ethernet-servomotore.ino @@ -0,0 +1,84 @@ +#include +#include + + +#include + +Servo myservo; // create servo object to control a servo +int servopin = 3; + +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address + +char serverName[] = "codice-sorgente.it"; +char serverPage[] = "/UTCTime.php?zone=Europe/Rome"; +EthernetClient client; + +////////////////////// + +void setup(){ + + if (Ethernet.begin(mac) == 0) { + Serial.println("Failed to configure Ethernet using DHCP"); + // no point in carrying on, so do nothing forevermore: + while(true); + } + + Serial.begin(9600); + myservo.attach(servopin); + Serial.println("Init"); +} + +void loop(){ + delay(3000); + sendGET(); +} + +////////////////////////// + +void sendGET() //client function to send/receive GET request data. +{ + if (client.connect(serverName, 80)) { //starts client connection, checks for connection + Serial.println("connected"); +// client.println("GET /ioprogrammo/UTCTime.php HTTP/1.0"); //download text + client.print("GET "); + client.print(serverPage); + client.println(" HTTP/1.0"); + client.print("Host: "); + client.println(serverName); + client.println(); //end of get request + } + else { + Serial.println("connection failed"); //error message if no client connect + Serial.println(); + return; + } + +String response = ""; + while(client.connected() && !client.available()) delay(1); //waits for data + while (client.connected() || client.available()) { //connected or data available + char c = client.read(); //gets byte from ethernet buffer + response += c; + } + + Serial.println(response); + int da = response.indexOf("<")+1; + int a = response.indexOf(">"); + String pageValue = response.substring(da,a); + + da = pageValue.indexOf(" ")+1; + a = pageValue.indexOf(":",da); + String hour = pageValue.substring(da,a); + int ora = hour.toInt(); + int rotazione = map(ora, 0, 23, 0, 180); //può essere 90 invece di 180 + Serial.print("Writing this value to servo: "); + Serial.println(rotazione); + myservo.write(rotazione); + + Serial.println(); + Serial.println("disconnecting."); + Serial.println("=================="); + Serial.println(); + client.stop(); //stop client + +} + diff --git a/scala-led-potenziometro.ino b/scala-led-potenziometro.ino new file mode 100644 index 0000000..62a2d45 --- /dev/null +++ b/scala-led-potenziometro.ino @@ -0,0 +1,55 @@ +int potPin = 2; // pin analogico potenziometro + +int ledPin1 = 3; //pin dei led +int ledPin2 = 4; +int ledPin3 = 5; +int ledPin4 = 6; +int ledPin5 = 7; + + +void setup() { + pinMode(ledPin1, OUTPUT); // dichiaro i ledPin come OUTPUT + pinMode(ledPin2, OUTPUT); + pinMode(ledPin3, OUTPUT); + pinMode(ledPin4, OUTPUT); + pinMode(ledPin5, OUTPUT); +} + +void loop() { + int val = 0; + val = analogRead(potPin); //inserisco in val il valore del potenziometro + int mappedval = 0; + mappedval = map(val, 0, 1023, 0, 5); //mappo il valore dall'intervallo 0-1023 a 0-5 + + if (mappedval>0) { + digitalWrite(ledPin1, HIGH); + } else { + digitalWrite(ledPin1, LOW); + } + + if (mappedval>1) { + digitalWrite(ledPin2, HIGH); + } else { + digitalWrite(ledPin2, LOW); + } + + if (mappedval>2) { + digitalWrite(ledPin3, HIGH); + } else { + digitalWrite(ledPin3, LOW); + } + + if (mappedval>3) { + digitalWrite(ledPin4, HIGH); + } else { + digitalWrite(ledPin4, LOW); + } + + if (mappedval>4) { + digitalWrite(ledPin5, HIGH); + } else { + digitalWrite(ledPin5, LOW); + } + +} + diff --git a/temperatura-lm35.ino b/temperatura-lm35.ino new file mode 100644 index 0000000..a75cb28 --- /dev/null +++ b/temperatura-lm35.ino @@ -0,0 +1,15 @@ +int pin = 1; +double temp = 0.0; + +void setup(){ + Serial.begin(9600); +} + +void loop(){ + temp = analogRead(pin)*(500/1023); + Serial.print ("Stanza 1: "); + Serial.print (temp); + Serial.print ("° C"); + Serial.println(); + delay(1000); +} -- cgit v1.1