INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
mit Attiny85 Feuchtigkeitssensor auslesen
18.08.2016, 11:14
Beitrag #1
mit Attiny85 Feuchtigkeitssensor auslesen
Hallo in die Runde,

ich möchte mit einen Attiny 85 die Daten eines Feuchtigkeitssensor per Funk an einem Arduino Uno senden. Da der Attiny 85 mit Batterie betrieben wird soll er nach dem Messen in den schlaf versetzt werden.

Mein Problem: Wenn ich den Sensor ohne VirtualWire betreibe scheint alles zu funktionieren. Die LED die ich zum "prüfen" mit eingebaut habe leuchtet. Der Attiny85 wird auch in den schlaf versetzt. Sobald ich VirtualWire mit in den Code aufnehme leuchtet die prüf-LED nur kurz auf. Die delay Zeiten werden nicht eingehalten. Schlafen geht der Attiny aber.

Hier mal mein Code:
Code:
// ATMEL ATTINY 25/45/85 / ARDUINO
//
//                  +-\/-+
// Ain0 (D 5) PB5  1|    |8  Vcc
// Ain3 (D 3) PB3  2|    |7  PB2 (D 2) Ain1
// Ain2 (D 4) PB4  3|    |6  PB1 (D 1) pwm1
//            GND  4|    |5  PB0 (D 0) pwm0
//                  +----+



#include <avr/sleep.h>    // Sleep Modes
#include <avr/power.h>    // Power management
#include <avr/wdt.h>      // Watchdog timer
#include <VirtualWire.h>

int sensorPin = A1; //zum lesen der Daten
char daten[5];
const int PIN_LED = 4;
const int strom =  1;




ISR (PCINT0_vect)
{
// do something interesting here
}  // end of PCINT0_vect

// watchdog interrupt
ISR (WDT_vect)
{
   wdt_disable();  // disable watchdog
}  // end of WDT_vect

void resetWatchdog ()
  {
  // clear various "reset" flags
  MCUSR = 0;    
  // allow changes, disable reset, clear existing interrupt
  WDTCR = bit (WDCE) | bit (WDE) | bit (WDIF);
  // set interrupt mode and an interval (WDE must be changed from 1 to 0 here)
  WDTCR = bit (WDIE) | bit (WDP3) | bit (WDP0);    // set WDIE, and 8 seconds delay
  // pat the dog
  wdt_reset();  
  }  // end of resetWatchdog

  void setup ()
  {
  resetWatchdog ();  // do this first in case WDT fires
   // Transmitter is connected to Arduino Pin #10  
  pinMode(PIN_LED, OUTPUT);
  pinMode(strom, OUTPUT);
  // VirtualWire setup
  vw_set_ptt_inverted(true);

  vw_setup(1000); // Bits per sec
  vw_set_tx_pin(3);//
  }

void loop ()
  {
digitalWrite(strom, HIGH);
digitalWrite(PIN_LED, HIGH);
delay(2550);
sprintf(daten, "%d", analogRead(sensorPin));
delay(250);
  vw_send((uint8_t *)daten, strlen(daten));
vw_wait_tx(); // Wait until the whole message is gone

delay(1000);
digitalWrite(strom, LOW);
digitalWrite(PIN_LED, LOW);

//Schlafen gehen
  goToSleep ();
  for (int i=0; i<10 ; i++){  //Hier schläft er jetzt 80 Sekunden
    goToSleep ();
  }
  
  
  
  }  // end of loop
  
void goToSleep ()
  {
  set_sleep_mode (SLEEP_MODE_PWR_DOWN);
  ADCSRA = 0;            // turn off ADC
  power_all_disable ();  // power off ADC, Timer 0 and 1, serial interface
  noInterrupts ();       // timed sequence coming up
  resetWatchdog ();      // get watchdog ready
  sleep_enable ();       // ready to sleep
  interrupts ();         // interrupts are required now
  sleep_cpu ();          // sleep                
  sleep_disable ();      // precaution
  power_all_enable ();   // power everything back on
  }  // end of goToSleep

Auch ein anderer Attiny85 bringt den selben Fehler :-( Hat jemand eine Idee was ich ich falsch mache?

Danke und Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 12:02
Beitrag #2
RE: mit Attiny85 Feuchtigkeitssensor auslesen
Auf welche Taktfrequenz hast du den ATtiny85 geflasht ?
VirtualWire funktioniert nur mit 8 MHz auf dem ATtiny85.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 12:32
Beitrag #3
RE: mit Attiny85 Feuchtigkeitssensor auslesen
Hallo hotsystems,

ja habe ich gemacht 8 MHz sind eingestellt. Ist dir sonst noch was aufgefallen was nicht stimmen könnte?

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 13:11
Beitrag #4
RE: mit Attiny85 Feuchtigkeitssensor auslesen
(18.08.2016 12:32)toto1975 schrieb:  Ist dir sonst noch was aufgefallen was nicht stimmen könnte?

Nein, leider nicht.

Einzig dass ich mal ein Problem mit der VirtualWire und einem DHT-Sensor hatte. Da musste ich die Initialisierung der Lib (VirtualWire) an den Anfang setzen. Danach funktionierte das. Erklären kann ich das nicht.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 13:49
Beitrag #5
RE: mit Attiny85 Feuchtigkeitssensor auslesen
Das "lustige" ist ja wenn ich alle VirtualWire auskommentiere scheint alles zu funktionieren. Kommentiere ich den Sensor aus und gebe einen festen Wert zur Übermittlung ein wird der Wert ebenfalls gesendet, nur beides zusammen will irgendwie nicht :-(
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 14:09
Beitrag #6
RE: mit Attiny85 Feuchtigkeitssensor auslesen
(18.08.2016 13:49)toto1975 schrieb:  Das "lustige" ist ja wenn ich alle VirtualWire auskommentiere scheint alles zu funktionieren. Kommentiere ich den Sensor aus und gebe einen festen Wert zur Übermittlung ein wird der Wert ebenfalls gesendet, nur beides zusammen will irgendwie nicht :-(

Was ist das für ein Sensor ?
Ich kann nur "analogRead" sehen, mehr nicht.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 14:22 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2016 14:23 von toto1975.)
Beitrag #7
RE: mit Attiny85 Feuchtigkeitssensor auslesen
Ich habe den Sensor von Funduino http://www.funduinoshop.com/epages/78096...ucts/03-01

Hier auch mal ein Bild von meiner Schaltung [Bild: schaltung5gs83bntx0i.jpg]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 14:59
Beitrag #8
RE: mit Attiny85 Feuchtigkeitssensor auslesen
Ich vermute eher ein Problem mit dem Sleep-Modus.

Der Sensor oder VirtualWire arbeiten bestimmt zusammen.

Hast du mal einen "normalen" Betrieb, also ohne die Sleep-Modus-Funktion getestet ?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Mit dem Arduino JSON Webseiten auslesen seb201 3 95 05.12.2016 22:25
Letzter Beitrag: Tommy56
  Attiny85 bergfrei 3 140 17.11.2016 21:33
Letzter Beitrag: bergfrei
  Messchieber auslesen mit nem UNO roadcaptain 8 311 15.11.2016 14:30
Letzter Beitrag: Tommy56
  U-blox Neo 6M GPS auslesen Matthias_Arduino 15 876 09.11.2016 16:40
Letzter Beitrag: AvrRobot
  Encoder auslesen Phil333 1 668 23.03.2016 21:40
Letzter Beitrag: hotsystems
  "WORT" über die serielle Schnittstelle auslesen hannes77 1 536 08.03.2016 12:13
Letzter Beitrag: Binatone
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 576 06.03.2016 14:44
Letzter Beitrag: hotsystems
  Strombegrenzung mit ATTiny85 Chef_2 12 819 01.03.2016 16:53
Letzter Beitrag: Chef_2
  Elro HIS20m Wandsender 433MHz auslesen mayrst 6 952 10.02.2016 12:33
Letzter Beitrag: mayrst
  Wetterdaten von Yahoo auslesen nowak222 12 1.288 08.02.2016 16:33
Letzter Beitrag: ardu_arne

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste