Vis indlæg

Denne sektion tillader dig at se alle indlæg oprettet af dette medlem. Bemærk at du kun kan se indlæg der er oprettet i områder du i øjeblikket har adgang til.


Beskeder - Elfix

Sider: [1] 2 3 ... 5
1
Arduino & Lign. / Sv: Watchdog
« Dato: Januar 08, 2023, 18:08:00 »
Hej Icecap

Tak for svaret! :)
Har du eller i andre noget bud på hvad man ellers kan gøre? :(

Mvh. Jonny

2
Arduino & Lign. / Watchdog
« Dato: Januar 07, 2023, 20:10:09 »
Hej DEF
Her lige et nyt emne  :)
For et års tid siden prøvede min søn og jeg at lave
Watchdog til mit StorkeControl men det kom det ikke noget
godt ud af!
Min søn har ellers en bachelor of engineering og er master of science
men der skal også lige siges at vi havde ikke særlig meget tid til at lege med det :)

Men det der skete var at megaen gik i selvsving og kunne ikke komme
ud af LOOPen heller ikke ved reset!!
Så siden har jeg ikke turde prøve en få det til at køre med Watchdog

Men skulle der her inde der har noget erfaring med det og evt. et link eller
noget jeg skal kikke på så vil jeg meget gerne høre fra jer :)

Hilsen Jonny

3
Arduino & Lign. / Sv: arduino reset
« Dato: Januar 07, 2023, 19:38:40 »
Hej alle
Og tak for jeres svar :)
Jo det bliver jo nok FRAM på længer sigt men jeg vil gerne lige prøve
om jeg ikke lige i første omgang kan få det ti at virke med sd kortet!

Jeg syntes at jeg har prøvet alt men min kylling hjerne kan stadig ikke
få det til at virke :(

Er det fordi at jeg skal have en extra (variabel) ?
det skal jo gerne være sådan at det jeg printer til LCD skal være
det der bliver læst fra sd kortet ved reset + ny counter
og jeg vil også gerne have at sd kortet bare bliver over skrevet men hvordan?   

Jeg vedhæfter
Med venlig hilsen
Jonny 

4
Arduino & Lign. / Sv: arduino reset
« Dato: December 29, 2022, 05:49:43 »
Hej
Jeg syntes jeg har prøvet alt men jeg kan bare ikke få det til at virke
jeg er også lidt i tvivl om hvor rutinen skal ligge dvs.
om læsningen skal ligge  void setup og skrivningen skal ligge i void loop
eller bække to i void loop?
jeg vedhæfter lige min kode med det jeg har forsøgt :)

Mvh Elfix

5
Arduino & Lign. / arduino reset
« Dato: December 28, 2022, 17:32:21 »
Hej dlf
Jeg har lige et lille problem
Jeg har en styring til mit pille fyr som køre rigtig godt (takket være hjælp her fra) :)
Men mit problem er at mit træpille totalforbrug 0 stilles når strømmen går eller
ved reset af arduinoen
jeg bruger en arduino mega og w5100 med sd kort
det jeg gerne vil er at gemme forbrug enten på sd kort eller eeprom løbene for så
at kan læse det igen efter reset og fortsætte tællingen der fra
Jeg har søgt på nettet men kan ikke få noget til at virke >:(

Er der nogen der har prøvet dette før?
på forhånd tak for hjælpen

Elfix   

6
Arduino & Lign. / Sv: Modstand
« Dato: Juni 21, 2018, 19:57:33 »
Hej Jakobsen
Tak for hjælpe  :)
Jeg prøver det lige i weekenden så vender jeg tilbage

Mvh Elfix

7
Arduino & Lign. / Sv: Modstand
« Dato: Juni 20, 2018, 17:40:51 »
Hej Jakobsen
tak for dit svar!
Jeg køre i dag med 5v forsyning på NodeMcu Lua WIFI V3 ESP-12E ESP8266 der også har
en regulator på ADC indgangen så den for også for 0-5v det køre rigtig godt
men det jeg så gerne vil have er at jeg kan forsyne ESPen med 12v og bruge 3.3v udgangen
på ESPen til vindretnings måleren der består af 1 stk. 20k ohm linear pot som er forbundet
til CW + og CCW - og et signal  ud mellem signal ud og CW + er der en modstand på 909k ohm signalet
går så til ADC indgang og det virker fint ved 5v men hvad skal modstanden værre ved 3.3v
Jeg har prøvet at vedhæfte et diagram men der er for stort! jeg vil også lige spørge hvad
du har tegnet dit diagram i ?

Mvh Elfix

8
Arduino & Lign. / Modstand
« Dato: Juni 19, 2018, 19:15:30 »
Hej DEF

Jeg gået helt i sort! håber at nogen kan hjælpe mig  ;)
Når jeg har et analog input på 5 v og en modstand på 909K ohm arduino uno
hvor stor skal modstanden så være ved et input på 3,3 v esp8266

Jeg skriver det lige på en anden måde!

jeg har 5 v in og et 20 k linear pot og en modstand på 909k ohm til adc ingang
ud for jeg 0 - 1024

hvad hvis jeg har 3.3 v in og et 20 k linear pot og en modstand på ?k ohm til adc ingang
og gerne vil have  0 - 1024 ud

hvad skal modstanden på 909k ohm så værre på ?

Mvh Elfix

9
Arduino & Lign. / Sv: koverter arduino w5100 og mega til esp-12e
« Dato: Januar 06, 2018, 17:59:08 »
Hej jakobsen
Jeg har ikke lavet noget om i nu jeg bare lige prøvet kun at lave wifi delen om men jeg
får nogle interrupts fejl som jeg ikke lige kan finde ud af :) men jeg ville også
hellere  tage min mega og koble op sammen med espen men der står jeg nok af for det
med seriel er ikke lige mig jeg fatter ikke noget af det!!  :-[ (det var måske et emne i forum)
hvis der er en der er stærk i det :)
Mvh Elfix

10
Arduino & Lign. / Ultra HC-SR04
« Dato: Januar 05, 2018, 22:53:04 »
Hej Forum
Jeg har lige noget jeg vil fortælle jer  :)
Jeg har i nogle år brugt HC-SR04 til at måle min træpille beholdning men som mange
andre har det ikke været optimal det er det heller ikke helt i nu men meget bedre
Det man kan gøre er at gøre delay længer  mellem ping
//HC-SR04
  delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.

Så er der knap så meget støj på
min er lige nu sat til 5 sekunder men jeg tro godt at jeg kan sætte den til 10
men prøv jer frem
Mvh Elfix
   

11
Arduino & Lign. / koverter arduino w5100 og mega til esp-12e
« Dato: Januar 05, 2018, 22:26:17 »
Hej Forum
Først vil jeg lige ønske jer et godt nytår :)
Jeg har en vejrstation med arduino w5100 og mega kode der køre helt perfekt som jeg gerne vil konverter til
at køre på en ESP-12E ESP8266 men jeg er ikke på timer/ interrupts og jeg syntes ikke jeg
kan finde noget
Er der nogen der har erfaring med dette og hvad der skal til

Ps. jeg vedhæfter lige koden 

12
Arduino & Lign. / Sv: Spændningsdeler
« Dato: August 23, 2016, 23:45:11 »
Hej microtec
Jeg har lavet lidt om på det så jeg bruger en (bourns 6539 potentiometer 20k)
men det er jo samme princip

Mvh Elfix

13
Arduino & Lign. / Sv: Minimum/maximum
« Dato: August 23, 2016, 23:38:34 »
Hej Forum
Så mangler jeg bare at konverter det hele over til esp8266 med eller uden arduino også
google chart så tror jeg det køre  8)

Mvh Elfix

14
Arduino & Lign. / Sv: Minimum/maximum
« Dato: August 23, 2016, 19:32:00 »
Hej Gerd
Tak for hjælpen!! også denne gang  :)
Nu skal jeg nok tænke på dig når der er solskin de næste dage   8)
Mvh Jonny

15
Arduino & Lign. / Minimum/maximum
« Dato: August 23, 2016, 08:22:02 »
Hej Forum
Så har jeg igen et problem med min vejrstation jeg kan bare ikke se fejlen i koden
for minimum temperatur når maximum temperatur virker det er i koden linje ca. 100
er der nogen her der kan hjælpe mig  ;)

Mvh Elfix
Kode:
#include <SPI.h>           // used to communicated via the spi bus
#include <Ethernet.h>      // used to communicate with the ethernet controller

#include "TimerOne.h"          // Timer Interrupt set to 2 second for read sensors
#include <math.h>

#include <Wire.h>
#include <Adafruit_BMP085.h>

#define Bucket_Size 0.2794   // bucket size to trigger tip count
#define Bucket_Pin 3         // digital pin Bucket connected to
#define TX_Pin 8           // used to indicate web data tx
 
#define WindSensor_Pin (2)      // The pin location of the anemometer sensor
#define WindVane_Pin (A2)       // The pin the wind vane sensor is connected to
#define VaneOffset 70           // define the anemometer offset from magnetic north

Adafruit_BMP085 bmp;

volatile unsigned long tipCount;    // bucket tip counter used in interrupt routine
volatile unsigned long contactTime; // Timer to manage any contact bounce in interrupt routine

volatile unsigned int  timerCount;    // used to determine 2.5sec timer count
volatile unsigned long rotations;     // cup rotation counter used in interrupt routine
volatile unsigned long contactBounceTime;  // Timer to avoid contact bounce in interrupt routine

long lastTipcount;            // keeps track of bucket tips
float totalRainfall;       // total amount of rainfall detected

volatile float windSpeed;
int vaneValue;       // raw analog value from wind vane
int vaneDirection;   // translated 0 - 360 direction
int calDirection;    // converted value with offset applied
int lastDirValue;    // last recorded direction value

float minTemp;   // keeps track of the minimum recorded temp value
float maxTemp;   // keeps track of the maximum recorded temp value
float maxWind;   // keeps track of the maximum recorded wind value
   

// arayas we use for averaging sensor data
float temps[12];    // array of 12 temps to create a 2 minute average temp
float wspeeds[24];  // array of 24 wind speeds for 2 minute average wind speed
float wdirect[24];  // array of 24 wind directions for 2 minute average


// Here we setup the webserver. We need to supply a mac address. Some ethernet boards have a label attached
// with a mac address you can use.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0,178);      // IP address, may need to change depending on network
EthernetServer server(80);           // create a server at port 80

void setup() {

  // setup rain sensor values
  lastTipcount = 0;
  tipCount = 0;
  totalRainfall = 0;

  // setup anemometer values
  lastDirValue = 0;
  rotations = 0;

  // setup timer values
  timerCount = 0;
 

  // disable the SD card by switching pin 4 high
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);

  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
 
  Serial.begin(9600);
if (!bmp.begin()) {
  Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  while (1) {}
  } 
 

  pinMode(TX_Pin,OUTPUT);
  pinMode(Bucket_Pin, INPUT);
  digitalWrite(Bucket_Pin, HIGH);
  pinMode(WindSensor_Pin, INPUT);
  attachInterrupt(digitalPinToInterrupt(Bucket_Pin), isr_rg, FALLING);
  attachInterrupt(digitalPinToInterrupt(WindSensor_Pin), isr_rotation, FALLING);

  // Setup the timer intterupt for 0.5 second
  Timer1.initialize(500000);
  Timer1.attachInterrupt(isr_timer);
 
  sei();// Enable Interrupts
}

void loop() {
 
//  bmp.readSensor();

  // set temp min and max values
  if(bmp.readTemperature() < minTemp) {
    minTemp = bmp.readTemperature();
  } 
  if(bmp.readTemperature() > maxTemp) {
    maxTemp = bmp.readTemperature();
  }

  // set wind max values
  if (windSpeed > maxWind) {
    maxWind = windSpeed;
  }
 

  // update rainfall total if required
  if(tipCount != lastTipcount) {
    cli();  // disable intterupts
    lastTipcount = tipCount;
    totalRainfall = tipCount * Bucket_Size;
    sei();  // enable interrupts
  }

  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
       if (client.available()) {
          char c = client.read();
          Serial.write(c);
          // if you've gotten to the end of the line (received a newline
          // character) and the line is blank, the http request has ended,
          // so you can send a reply
          if (c == '\n' && currentLineIsBlank) {
             // send a standard http response header
             digitalWrite(TX_Pin,HIGH);
             client.println("HTTP/1.1 200 OK");
             client.println("Content-Type: text/html");
             client.println("Connection: close");  // the connection will be closed after completion of the response
             client.println("Refresh: 10");  // refresh the page automatically every 5 sec
             client.println();
             client.println("<body bgcolor=\"black\">");//nye
             client.print("<font color=\"white\">");//nye
             client.println("<!DOCTYPE HTML>");
             client.println("<html><body><h1>&nbsp;&nbspGammeldam Weather Control<br>&nbsp;&nbsp vers. 1.0.1</h1>");
             
             digitalWrite(TX_Pin,HIGH);     // Turn the TX LED on
             client.print("<span style=\"font-size: 30px\";><br>&nbsp;&nbsp;Temperature is ");   
             client.print(bmp.readTemperature());
             client.println(" &deg;C<br />");
             client.print("&nbsp;&nbsp;Minim ");   
             client.print(minTemp);
             client.println(" &deg;C");
             client.print("&nbsp;&nbsp;Maxim ");   
             client.print(maxTemp);
             client.println(" &deg;C<br />");
//             client.print("<br>&nbsp;&nbsp;Humidity is ");   
//             client.print(bme.getHumidity());
//             client.println(" %<br />");
             client.print("<br>&nbsp;&nbsp;Pressure is ");   
             client.print(bmp.readPressure()/100);
             client.println(" mb<br />");
             client.print("<br>&nbsp;&nbsp;Wind Speed is ");   
             client.print(windSpeed);
             client.println(" ms<br />");
             client.print("&nbsp;&nbsp;");
             if(calDirection < 0.2)
             client.print("Quit wind");
             else if (windSpeed < 1.5)
             client.print("Almost calm Wind");
             else if (windSpeed < 3.3)
             client.print("Weak wind");
             else if (windSpeed < 5.4)
             client.print("Light wind");
             else if (windSpeed <7.9)
             client.print("Moderate breeze");
             else if (windSpeed < 10.7)
             client.print("Fresh wind");
             else if (windSpeed < 13.8)
             client.print("Strong wind");
             else if (windSpeed < 17.1)
             client.print("High wind");
             else if (windSpeed < 20.7)
             client.print("Moderate gale");
             else if (windSpeed < 24.4)
             client.print("Fresh gale");
             else if (windSpeed < 28.4)
             client.print("Storm");
             else if (windSpeed < 32.6)
             client.print("Strong storm");
             else
             client.print("Hurricane");
             client.println("<br />");
             client.print("<br>&nbsp;&nbsp;Wind Max Speed is ");   
             client.print(maxWind);
             client.println(" ms<br />");
             client.print("&nbsp;&nbsp;");
             if(calDirection < 0.2)
             client.print("Quit wind");
             else if (maxWind < 1.5)
             client.print("Almost calm Wind");
             else if (maxWind < 3.3)
             client.print("Weak wind");
             else if (maxWind < 5.4)
             client.print("Light wind");
             else if (maxWind <7.9)
             client.print("Moderate breeze");
             else if (maxWind < 10.7)
             client.print("Fresh wind");
             else if (maxWind < 13.8)
             client.print("Strong wind");
             else if (maxWind < 17.1)
             client.print("High wind");
             else if (maxWind < 20.7)
             client.print("Moderate gale");
             else if (maxWind < 24.4)
             client.print("Fresh gale");
             else if (maxWind < 28.4)
             client.print("Storm");
             else if (maxWind < 32.6)
             client.print("Strong storm");
             else
             client.print("Hurricane");
             client.println("<br />");
             getWindDirection();
             client.print("<br>&nbsp;&nbsp;Direction is ");   
             client.print(calDirection);
             client.println(" &deg;");
             if(calDirection < 22)
             client.print(" = North");
             else if (calDirection < 67)
             client.print(" = NorthEast");
             else if (calDirection < 112)
             client.print(" = East");
             else if (calDirection < 157)
             client.print(" = SouthEast");
             else if (calDirection < 212)
             client.print(" = South");
             else if (calDirection < 247)
             client.print(" = SouthWest");
             else if (calDirection < 292)
             client.print(" = West");
             else if (calDirection < 337)
             client.print(" = NorthWest");
             else
             client.print(" = N");
             client.println(" <br />");
             client.print("<br>&nbsp;&nbsp;Rainfall is ");   
             client.print(totalRainfall);
             client.println(" mm<br />");
             //client.print("&nbsp;&nbsp;Mini ");   
             //client.print(minTemp);
             //client.println(" &deg;C<br />");
             //client.print("&nbsp;&nbsp;Maxi ");   
             //client.print(maxTemp);
             //client.println(" &deg;C<br />");
             client.println("</html>");
             digitalWrite(TX_Pin,LOW);      // Turn the TX LED off
             break;
           }
           if (c == '\n') {
             // you're starting a new line
             currentLineIsBlank = true;
           } else if (c != '\r') {
             // you've gotten a character on the current line
             currentLineIsBlank = false;
           }
           
         }
       }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    // Serial.println("client disconnected");
    Ethernet.maintain();

}

// isr routine for timer interrupt
void isr_timer() {
 
  timerCount++;
 
  if(timerCount == 5)
  {
    // convert to ms using the formula 2.4 km/t = (2.4 km/t)*(1000 m/km)*(1/3600 t/s)
    // = 2/3 m/s = 0.667 m/s
    windSpeed = rotations * 0.667;
    rotations = 0;
    timerCount = 0;
  }
}

// Interrrupt handler routine that is triggered when the rg-11 detects rain
void isr_rg() {

  if((millis() - contactTime) > 15 ) { // debounce of sensor signal
    tipCount++;
    contactTime = millis();
  }
}
// end of rg-11 rain detection interrupt handler

// interrupt handler to increment the rotation count for wind speed
void isr_rotation ()   {

  if ((millis() - contactBounceTime) > 15 ) {  // debounce the switch contact.
    rotations++;
    contactBounceTime = millis();
  }
}

// Get Wind Direction
void getWindDirection() {
 
   vaneValue = analogRead(WindVane_Pin);
   vaneDirection = map(vaneValue, 0, 1023, 0, 360);
   calDirection = vaneDirection + VaneOffset;
   
   if(calDirection > 360)
     calDirection = calDirection - 360;
     
   if(calDirection < 0)
     calDirection = calDirection + 360;
 
}

Sider: [1] 2 3 ... 5