Show Posts
Pages: [1] 2 3 ... 7
1  International / Deutsch / INT erste Stelle 0 gibt anderen Wert. (022 gibt 18 aus) on: June 18, 2014, 02:38:10 pm
Hi,

ich wundere mich gerade, warum mir mein Code eine 18 ausgibt.

Würde gerne wissen, woran das liegt smiley
Außerdem wüsste ich gerne, ob der Fehler beim Print oder bei der Definition liegt smiley
Code:
int blub = 022;

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println(blub);
  delay(500);
}

Ausgabe immer 18
2  International / Deutsch / Re: Atmega328 falsch beschrieben.Wie retten? + 8Mhz kalibrieren? on: June 13, 2014, 04:42:06 pm
WoW!!!

Danke, echt genial!

Einen kleinen Hacken hatte die Sache:
Da ich keinen eigenen Programmer hab, komme ich derzeit nur über Softserial an den Output des zu programmierenden Atmega ran. Da der Uno das Signal gibt ist der ja leider belegt.

Ich hatte aber noch nen CP21xx USB to UART vom Router programmieren da und geht smiley

Auch deine Vorhersage, dass erstmal die Baudrate passen muss war top !

Du solltest daraus ein Tutorial/Howto machen smiley Wäre schade wenn es hier untergeht smiley
Vll gibts ja noch nen Trick wie man das ganze über den Arduino Seriell Monitor rausgibt und es wäre einfach Top.

// Ich hab grad gecheckt, dass ich auch vom Uno einfach den Pin nehmen kann und es im Arduino Monitor sehe smiley
TOOOOOP !

DANKE!
Bin mal gespannt wie jetzt die Werte vom DHT22 aussehen smiley
Code:
X$Y▒X[&▒▒X$Y▒TZ4▒X$Y▒PY 4▒X▒&▒Nb▒▒&▒JJ▒R&▒%ʘ▒6▒▒&▒%Ƙ▒6▒▒▒&▒%�▒6▒▒▒&▒▒&▒▒▒R"▒▒
                                                                             2▒▒                                                                                                                                                                                               "▒▒څ▒"▒ڟ▒2▒▒$"▒ژ2▒▒▒+▒▒+�#▒$+▒▒%▒څ▒#▒▒-Җ#▒,#▒▒#ґ#▒▒▒sڑ#▒,▒▒▒▒#ᒌ
                                                               ▒)ڱf*▒▒
▒2▒▒▒▒▒ȲL)▒1M▒H2▒J1.10947
206     1.09974
205     1.09398
204     1.08494
203     1.08250
202     1.07332
201     1.06737
200     1.05938
199     1.06018
198     1.05168
197     1.04718
196     1.03769
195     1.03403
194     1.02700
193     1.02047
192     1.01253
191     1.00967
190     0.99482
191     1.00241
190     0.99581
191     1.00274
190     0.99560
191     1.00249
190     0.99547
191     1.00271
190     0.99422
191     1.00245
190     0.99401
191     1.00130
190     0.99341
191     1.00022
190     0.99341
191     0.99965
192     1.00220
3  International / Deutsch / Re: solved: Atmega328 falsch beschrieben.Wie retten?Yikes! Invalid device signature on: June 13, 2014, 11:11:20 am
Ich hab:
-mehrere Atmega328 / Attiny85
-Uno R3

Ansonsten aus der Teilekiste:
1x  13BBAS (zumindest sieht es aus wie ein Quartz)
1X  JYEG 35.328 (17*2009)
2x 4.000 Quartz auf HC-SR04 die ich klauen könnte.

Könnte ich einen Atmega328 als Signalgeber programmieren, die genaue Frequenz mit dem Uno messen und dann den Uno als ISP zur Kalibrierung eines zweiten Atmega328 nehmen?

Bringen mir die Quartze etwas?

(Überlege gerade das Thema neu aufzumachen)
4  International / Deutsch / Re: solved: Atmega328 falsch beschrieben.Wie retten?Yikes! Invalid device signature on: June 13, 2014, 08:09:27 am
@jurs Danke für die ausführliche Antwort smiley
@Serenifly ich schau mal ob ich von meinem Vater das Oszi ne Woche bekomme. Leider geht der Artikel anscheinend nicht sehr weit.

@jurs

ist die Art der "Zeitbasis" egal? Braucht es einen speziellen Takt?

Ich hab einen NE555 irgendwo. Könnte der Arduino oder ggf. ein anderer Atmega328 nicht ein solches Signal liefern?

Ich muss -kürz Datenblatt überflogen- dem AvrStudio ne Referenzclock geben, die ich möglichst genau angeben kann und daran kalibriert er dann diesen Wert.(oscal oder so)

Die Temperaturabhängigkeit schaut nach ~1% je 10K aus..

Probleme die ich sehe:
Ich brauche ein sehr gutes Signal und muss dessen Takt gut wissen, damit eine gute "Eichung" bei raus kommt.
Wenn ich da nur 5% rankomme und noch 1%Temp, hab ich ja nicht soviel gewonnen...

Frage:
Könnte man nicht auch einfach die Abweichung vom Blink Sketch mit dem Uno messen und dann rückrechnen auf die Abweichung und wie man Eichen muss?
5  International / Deutsch / Re: solved: Atmega328 falsch beschrieben.Wie retten?Yikes! Invalid device signature on: June 12, 2014, 03:23:13 pm
Ich hätte noch eine Frage bezüglich der internen/externen Taktung.

Problem:
Ich habe den 328p jetzt auf 8 Mhz intern und bekomme über 4800baud Probleme mit der seriellen Kommunikation.
Blink Sketch sieht mir auch min. ~10% daneben aus und DHT22 Lib (http://arduino.cc/playground/Main/DHTLib) haut mir im Vergleich zum Uno auch 27°C anstatt ~23 raus.

Fragen:
1)Ich hab was gelesen vom Kalibrieren, aber das geht nur mit anderer Hardware/Software ? Hab nur Arduino IDE und Uno als ISP derzeit.

2)Werden meine Abweichungen besser, wenn ich intern auf 1Mhz gehe?

3)Angenommen ich hole mir noch 8/16Mhz Quartze. Wären dann noch extrem stromsparende Einstellungen möglich? Ich plane derzeit zwar noch nicht für sowas, aber mal nachfragen. Kann ich mit einem 16Mhz Quartz auch auf 8Mhz "teilen" und so ggf. weniger Spannung fahren? Wieviel Strom frisst so ein Quartz an sich? Vernachlässigbar?

(Soll so in Richtung DHT22/Nrf Außen-Node gehen evtl.)
6  International / Deutsch / Re: Atmega328 falsch beschrieben. Wie retten? (Yikes! Invalid device signature.) on: June 11, 2014, 03:05:31 pm
@Skorpi
Danke !
Hat so geklappt. Unterschied ist, dass du den externen Quartz simulierst und langsamer programmierst oder?

@Jurs

Ich hab nicht genau genug gelesen und dachte es wären die internen 8Mhz :/

Wäre eigentlich nicht nötig gewesen. War hierfür:
http://forum.arduino.cc/index.php?topic=246181.0

Da ich andere Fehler erstmal nicht finden konnte, wollte ich ein Beispiel aus dem Thread erstmal nachstellen.

Prinzipiell soll der Atmega @5V mit 8mhz intern laufen und über nrf24 senden/empfangen.
7  International / Deutsch / Atmega328 falsch beschrieben.Wie retten? + 8Mhz kalibrieren? on: June 11, 2014, 01:56:06 pm
Hi,

(Vorab, die Verkabelung vom ArduinoISP stimmt, kann andere Atmega328 normal brennen.)

ich habe mit dem ArduinoISP einen Atmega328P-PU falsch beschrieben mit der boards.txt weiter unten.
Der Vorgang ging augenscheinlich nicht ganz durch und jetzt bekomme ich beim brennen des normalen bootloaders:
"avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check."

Was kann ich noch probieren, um den Atmega zu retten?

Wenn ich den kompletten Log aktiviere erhalte ich folgendes beim brennen des normalen bootloaders:
Code:
C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -cstk500v1 -P\\.\COM3 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xE2:m

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
         AVR Part                      : ATMEGA328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
avrdude: Send: A [41] . [80]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [02]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [98]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
avrdude: Send: A [41] . [84]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [85]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [86]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [87]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [89]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [04] . [00] . [00] . [00] . [80] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: P [50]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: V [56] 0 [30] . [00] . [01] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
################################## | 100% 0.06s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.

Hier ist die falsche boards.txt:

Code:
lopower.name=Arduino Ultru Low-Power (<2.4V, 8 MHz) w/ ATmega328
 
lopower.upload.protocol=stk500
lopower.upload.maximum_size=30720
lopower.upload.speed=57600
 
lopower.bootloader.low_fuses=0xFF
lopower.bootloader.high_fuses=0xDA
lopower.bootloader.extended_fuses=0x06
lopower.bootloader.path=atmega
lopower.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
lopower.bootloader.unlock_bits=0x3F
lopower.bootloader.lock_bits=0x0F
 
lopower.build.mcu=atmega328p
lopower.build.f_cpu=8000000L
lopower.build.core=arduino
8  International / Deutsch / Re: nrf24l01+ auf Atmega328/Uno on: June 11, 2014, 11:37:16 am
Okay 2 Updates!

Update 1:
Das Ping/Pong geht nun!
-Folgende Lib: https://github.com/gcopeland/RF24
-Extra Kondensatoren
-Eins von den 3 Vorbereiteten Boards scheint defekt..

Anscheinend ist bei der Orginal-Lib von den Adressen doof, oder was weiß ich. Der Scanner hat mir immer Werte angezeigt, Ping/Pong ging aber nicht. Ich war dann halt nicht sicher ob mir der SCanner nur random Quatsch anzeigt. Die neue Lib ist da wesentlich übersichtlicher und ich hab auch gemerkt das ein Board nicht geht.

Naja Ping geht jetzt schon paar minuten smiley Freu mich.. und sooo viele kleine doofe Fehler.

Update2: ==> SCHON GELÖST! DANKE AN SKORPI
Ich hab probiert oben die Boards.txt aus dem Forum zu brennen und es ging nicht. Jetzt kann ich aber auch nicht mehr die normale brennen. Normal blinkt der ja nach dem brennen auf 13 und ich seh das auf dem Uno board. Jetzt leuchtet es dauerhaft.
Fehlermeldung:
avrdude: Yikes!  Invalid device signature. Double check connections and try again, or use -F to override this check.

Weiß jetzt nicht genau was ich machen soll smiley-sad Hoffe hab den nicht zerschossen. Er hat mit der Boards aus dem Post nicht lange geladen wie normal sondern wie angefangen und dann nicht weiter :/

Ich ha 328p-pu, sollte doch passen...
9  International / Deutsch / Re: nrf24l01+ auf Atmega328/Uno on: June 11, 2014, 08:37:53 am
Naja fast. Bis auf die Werte für die Fuses ist es gleich. Da ich @5V arbeite und die 8Mhz ja passen, sollte das soweit kein Problem sein.

Ich muss jetzt aber eh nochmal neu starten. Ich bau jetzt zwei sauber auf dem Breadboard auf und seh dann weiter.

Ich kann leider nicht mehr unterscheiden ob meine 3,3V unsauber sind, oder mir der Scanner nur Mist ausgibt , oder es meine Pinbelegung ist. Jetzt geht der Scanner aber mit dem Pingsketch bekomme ich nur Schrott..

=== Ich mach erstmal Neustart hier  und meld mich wieder wenn es dann nicht geht ==
10  International / Deutsch / Re: nrf24l01+ auf Atmega328/Uno on: June 11, 2014, 06:12:30 am
Ich verstehe das leider nicht ganz.

Zusatzinfo:
2x 328p @ 8Mhz (also kein Uno also "Partner")
Serielle Ausgabe erfolgt über den UNO @4800 (softserial auf Serial Monitor) und dann auf den PC.
Das serielle geht gut soweit, nur eben die Com über nrf nicht.

A) Seriell läuft, aber besser auf nur 4800, also das stimmt schon. Seriell benutzte ich aber nur um zu kontrollieren welche Ausgaben mir die BEIDEN!! 328 machen.  Das ist ja der zweite Anhang oben im ersten Post.

B)Das Sketch läuft nicht auf 8Mhz? Ich bin davon ausgegangen, dass wenn ich den Bootloader @ 8Mhz installiere, die Timings auf 8Mhz soweit angepasst sind, das jedes Sketch usw. wieder passen sollte.

Wie kommst du auf diese %-Abweichungen? Was sagen mir diese? Nur bezogen auf Serielle Comm?

Was mache ich jetzt am besten?

Hatte auch keine Anpassung für folgendes Tut vom Sketch Dev gesehen:
http://maniacbug.wordpress.com/2011/10/19/sensor-node/
Dachte daher es läuft problemlos @8mhz


//////////////////////////////
Okay habe jetzt ein Scanner example auf dem Breadboard laufen, nochmal alles neu aufgebaut.

Ich weiß nicht wozu CS und CE da sind, aber hatte es so verstanden, dass die nur H/L sind um Modus zu wählen.
Da ich die von zwei PWM pins auf zwei normale gewechselt hatte wird wohl hier mein Fehler liegen.

Ich werde meine Boards nochmal umlöten und sehen, ob es dann geht.

11  Using Arduino / Networking, Protocols, and Devices / Re: RF24 Library: Driver for nRF24L01(+) 2.4GHz Wireless Transceiver on: June 10, 2014, 05:44:29 pm
Hey, maybe you can help me here.

Installed the lib, wired up to Atmega328 and changed pin 9,10 (15,16) to 8,7(14,15).

I get the following Info but only timed out when going to Transmit mode

Code:
////////NODE1
RF24/examples/GettingStarted/
ROLE: Pong back
*** PRESS 'T' to begin transmitting to the other node
STATUS           = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1     = 0xe7e7e7e7e7 0xc2c2c2c2c2
RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
TX_ADDR          = 0xe7e7e7e7e7
RX_PW_P0-6       = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA            = 0x3f
EN_RXADDR        = 0x03
RF_CH            = 0x02
RF_SETUP         = 0x0f
CONFIG           = 0x08
DYNPD/FEATURE    = 0x00 0x00
Data Rate        = 2MBPS
Model            = nRF24L01
CRC Length       = 8 bits
PA Power         = PA_HIGH


//////NODE2
RF24/examples/GettingStarted/
ROLE: Pong back
*** PRESS 'T' to begin transmitting to the other node
STATUS           = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1     = 0xe7e7e7e7e7 0xc2c2c2c2c2
RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
TX_ADDR          = 0xe7e7e7e7e7
RX_PW_P0-6       = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA            = 0x3f
EN_RXADDR        = 0x03
RF_CH            = 0x02
RF_SETUP         = 0x0f
CONFIG           = 0x08
DYNPD/FEATURE    = 0x00 0x00
Data Rate        = 2MBPS
Model            = nRF24L01
CRC Length       = 8 bits
PA Power         = PA_HIGH

12  International / Deutsch / Re: nrf24l01+ auf Atmega328/Uno on: June 10, 2014, 04:40:22 pm
@Mrskuff
Ja hab jetzt 100nF noch reingesetzt. nicht direkt drauf, aber 2mm daneben.

@Schachmann

Ne, das täuscht. Von der Seite geht zwar Versorgung rein, wird aber auf der Rückseite zu den Beinen 7,8 und auch zum Spannungswandler geleitet.

Der Controller funzt soweit auch, kann ja seriell auslesen und programmieren. Nur irgendwie funzt die KOmm. nicht. Ich weiß halt nicht wie ich die Codes der Library interpretieren kann.

Ich mach mal nen Schaltplan und reiche nach.

//EDIT
Schaltplan (hoffe so aureichend) Ist auch so nochmal nachgemessen. Im Anhang

NRF -- Arduino(Pin)  --  Atmega(Bein)
1 -- Masse -- Masse
2 -- 3,3V -- 3,3V
3 -- 9 -- 14
4 -- 10 -- 13
5 -- 13 -- 19
6 -- 11 -- 17
7 -- 12 -- 18

Diese beiden habe ich von 9,10 aud 8(14),7(13) geändert aber wie oben im Sketch angegeben.
13  International / Deutsch / nrf24l01+ auf Atmega328/Uno on: June 10, 2014, 12:06:11 pm
Hey,

ich bekomme die Module nicht auf dem Atmega328 zum laufen.

Aufbau und Pinbelegung im Anhang (Ist auch so nochmal durchgemessen)
Library und Sketch:  Quelle: LINK

Sketch unten angehängt.

Output unten im zweiten Anhang.

Ich bekomme immer timed out.
Hab als einzige Änderung die zwei Pins CE /CSN von 9,10 auf 8,7, was ja kein Problem sein sollte. ??

Irgend eine Idee oder nen anderen Sketch/Link/Beispiel?

Nebeninfos:
Atmega328 intern 8Mhz @ ~4,8V (Vom Uno)
3,2V für den NRF (Nur Kondensator am Eingang des Spannungswandlers) Daher vll? Die Ausgangskondensatoren sind noch bestellt. Aber es geht selbst über längere Zeit nicht..
1.0.5r2 IDE

Sketch:
Code:
/*
 Copyright (C) 2011 J. Coliz <maniacbug@ymail.com>

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 version 2 as published by the Free Software Foundation.
 */

/**
 * Example for Getting Started with nRF24L01+ radios.
 *
 * This is an example of how to use the RF24 class.  Write this sketch to two
 * different nodes.  Put one of the nodes into 'transmit' mode by connecting
 * with the serial monitor and sending a 'T'.  The ping node sends the current
 * time to the pong node, which responds by sending the value back.  The ping
 * node can then see how long the whole cycle took.
 */

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

//
// Hardware configuration
//

// Set up nRF24L01 radio on SPI bus plus pins 9 & 10

RF24 radio(8,7);

//
// Topology
//

// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

//
// Role management
//
// Set up role.  This sketch uses the same software for all the nodes
// in this system.  Doing so greatly simplifies testing.  
//

// The various roles supported by this sketch
typedef enum { role_ping_out = 1, role_pong_back } role_e;

// The debug-friendly names of those roles
const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"};

// The role of the current running sketch
role_e role = role_pong_back;

void setup(void)
{
  //
  // Print preamble
  //

  Serial.begin(57600);
  printf_begin();
  printf("\n\rRF24/examples/GettingStarted/\n\r");
  printf("ROLE: %s\n\r",role_friendly_name[role]);
  printf("*** PRESS 'T' to begin transmitting to the other node\n\r");

  //
  // Setup and configure rf radio
  //

  radio.begin();

  // optionally, increase the delay between retries & # of retries
  radio.setRetries(15,15);

  // optionally, reduce the payload size.  seems to
  // improve reliability
  //radio.setPayloadSize(8);

  //
  // Open pipes to other nodes for communication
  //

  // This simple sketch opens two pipes for these two nodes to communicate
  // back and forth.
  // Open 'our' pipe for writing
  // Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading)

  //if ( role == role_ping_out )
  {
    //radio.openWritingPipe(pipes[0]);
    radio.openReadingPipe(1,pipes[1]);
  }
  //else
  {
    //radio.openWritingPipe(pipes[1]);
    //radio.openReadingPipe(1,pipes[0]);
  }

  //
  // Start listening
  //

  radio.startListening();

  //
  // Dump the configuration of the rf unit for debugging
  //

  radio.printDetails();
}

void loop(void)
{
  //
  // Ping out role.  Repeatedly send the current time
  //

  if (role == role_ping_out)
  {
    // First, stop listening so we can talk.
    radio.stopListening();

    // Take the time, and send it.  This will block until complete
    unsigned long time = millis();
    printf("Now sending %lu...",time);
    bool ok = radio.write( &time, sizeof(unsigned long) );
    
    if (ok)
      printf("ok...");
    else
      printf("failed.\n\r");

    // Now, continue listening
    radio.startListening();

    // Wait here until we get a response, or timeout (250ms)
    unsigned long started_waiting_at = millis();
    bool timeout = false;
    while ( ! radio.available() && ! timeout )
      if (millis() - started_waiting_at > 200 )
        timeout = true;

    // Describe the results
    if ( timeout )
    {
      printf("Failed, response timed out.\n\r");
    }
    else
    {
      // Grab the response, compare, and send to debugging spew
      unsigned long got_time;
      radio.read( &got_time, sizeof(unsigned long) );

      // Spew it
      printf("Got response %lu, round-trip delay: %lu\n\r",got_time,millis()-got_time);
    }

    // Try again 1s later
    delay(1000);
  }

  //
  // Pong back role.  Receive each packet, dump it out, and send it back
  //

  if ( role == role_pong_back )
  {
    // if there is data ready
    if ( radio.available() )
    {
      // Dump the payloads until we've gotten everything
      unsigned long got_time;
      bool done = false;
      while (!done)
      {
        // Fetch the payload, and see if this was the last one.
        done = radio.read( &got_time, sizeof(unsigned long) );

        // Spew it
        printf("Got payload %lu...",got_time);

// Delay just a little bit to let the other unit
// make the transition to receiver
delay(20);
      }

      // First, stop listening so we can talk
      radio.stopListening();

      // Send the final one back.
      radio.write( &got_time, sizeof(unsigned long) );
      printf("Sent response.\n\r");

      // Now, resume listening so we catch the next packets.
      radio.startListening();
    }
  }

  //
  // Change roles
  //

  if ( Serial.available() )
  {
    char c = toupper(Serial.read());
    if ( c == 'T' && role == role_pong_back )
    {
      printf("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK\n\r");

      // Become the primary transmitter (ping out)
      role = role_ping_out;
      radio.openWritingPipe(pipes[0]);
      radio.openReadingPipe(1,pipes[1]);
    }
    else if ( c == 'R' && role == role_ping_out )
    {
      printf("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK\n\r");
      
      // Become the primary receiver (pong back)
      role = role_pong_back;
      radio.openWritingPipe(pipes[1]);
      radio.openReadingPipe(1,pipes[0]);
    }
  }
}
// vim:cin:ai:sts=2 sw=2 ft=cpp
14  International / Deutsch / Re: Restlaufzeit einer WaMa erfassen? on: June 01, 2014, 09:33:01 am
Vll einfach nach dem Start die Restlaufzeit eingeben über paar Taster?

Ich weiß nicht ob es Priorität hat das du es so hinbekommen oder eben nur um den Alarm egal wie.

Normal sollte die doch immer gleich lange laufen Bis auf schaumbildung vll.  Dann kann man sich die Laufzeiten ja sogar schon vorprogrammieren.

Ansonsten vll das Türschloss mit nem magnetschalter abfragen, wenn es so arbeitet?
15  International / Deutsch / Re: Atmega328 Sketch direkt programmieren und nicht über Seriell on: May 31, 2014, 03:15:34 pm
...
Kann es sein, dass Du ein Hochladen über ISP mit der Funktion "Upload" oder "Hochladen" versuchst?
...

Das wars danke ! Funzt super so smiley

Baue, oder besorge dir den USBasp.
..

Der Uno macht seinen Job doch ganz gut soweit. Hab ich damit noch weitere Vorteile?

Da der Uno derzeit nicht anders im Einsatz ist und generell der ISP schnell geflasht ist +4 Kabel ist es rein vom Aufbau kein Problem für mich.

Aber ich schau mir den mal an, vll bastel ich ja einen wenn ich Teile über hab smiley

Danke für den Hinweis.
Pages: [1] 2 3 ... 7