TEA5767 module
ik heb zo’n TEA5767 module aan de praat ( niet slecht! )
Met de meest simpele software met Arduino IDE .
Maar natuurlijk verder gekeken kom je meer tegen:
https://draeger-it.blog/stereo-fm-modul-tea5767-fuer-den-arduino/
als je hier naar beneden scrolt kom je meer informatie tegen!
Die simpele software is van die Simon Monk en moet je steeds een –
frequentie invullen in Arduino IDE en via een Arduino UNO in schieten.
Scrol je dan nog meer naar beneden dan kom je tegen dat je ook –
met een potmeter en Arduino UNO alleen kunt tunen!
.
dus ik dat gedaan maar dan kun je niet meer zo veel ontvangen als –
je met de simpele software kunt ontvangen?
De ontvanger is dan erg gevoelig en smalbandig
.
ik hoop dat iemand kan vertellen hoe het werkt,
ik denk te begrijpen dat het te maken heeft met de potmeter toegewezen waarde?
void loop(){
//lesen des aktuellen Wertes
int value = analogRead(poti);
//mappen des Wertes auf einen gültigen Frequenzwert zwischen 760 und 1080
//und danach dur 10 teilen um so einen Gleitkommawert erhält.
float frequenz = map(value, 0, 1023, 760, 1080) / 10.0f;
//setzen der Frequenz
radio.setFrequency(frequenz);
delay(125);
VrGr Rob
[Bericht gewijzigd door Henry S. op (1%)]
Heb je de volledige code gebruikt? Dan mag het niets uitmaken.
//einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
#include <Wire.h>
#include <TEA5767Radio.h>
//Drehpotentiometer am analogen Pin A0 angeschlossen
#define poti A0
//erzeugen einer Instanz
TEA5767Radio radio = TEA5767Radio();
void setup(){
//begin der Kommunikation
Wire.begin();
}
void loop(){
//lesen des aktuellen Wertes
int value = analogRead(poti);
//mappen des Wertes auf einen gültigen Frequenzwert zwischen 760 und 1080
//und danach dur 10 teilen um so einen Gleitkommawert erhält.
float frequenz = map(value, 0, 1023, 760, 1080) / 10.0f;
//setzen der Frequenz
radio.setFrequency(frequenz);
delay(125);
}
Hallo Henry,
Ja ik heb hem vergeleken en is het zelfde?
Ik zal morgen nog eens opnieuw proberen met andere potmeter.
Maar ik geloof niet dat het zal verschillen denk ik.
Heb jij er ook zo een Henry? die TEA5767?
Ik weet niet in hoeverre ze allemaal gelijk zijn maar dan zou je die TEA5767
Ook eens moeten proberen, ik vind hem echt best wel goed! ( met de simpele code dan! )
( ik gebruikte hem ook om mijzelf te ontvangen op de lage band, echt niet slecht! )
als die krengen allemaal zo zijn ga ik er meer kopen!
Niet zozeer voor mijzelf maar voor ook wat vrienden,
( kunnen ze laag misschien ook meeluisteren ) is ff goedkoper dan een TEF.
Dankjewel voor antwoord!
VrGr Rob
Ik heb zelf geen TEA5767, daar kom ik niet aan toe 
Controleer of de spanning op de loper van de potmeter tussen 0 en 5V regelt.
Edit: Wat bedoel je met smalbandig? Ik zie in de datasheet geen mogelijheid om de bandbreedte te veranderen. Of bedoel je dat de zenders stijf tegen elkaar aan zitten?
[Bericht gewijzigd door Henry S. op (39%)]
Hallo Henry,
Zo dan!
Ik dacht:
Die Henry die zegt nu wel van doet ie wel 0 tot 5V regelen,
MAAR, IK dacht: dat kan toch ook niet anders!!! JAHAAAAaaa DUS MIS!
Hij regelt het helemaal niet netjes!?
Er word op die site gezegd een 50K potmeter:
50 kOhm Drehpotentiometer mit Kappe. ( ik dacht, ik hou me aan de site... )
Das dus waarschijnlijk fout?:
https://draeger-it.blog/stereo-fm-modul-tea5767-fuer-den-arduino/
als ik ga meten dan licht het er aan of ik van de min of van de plus kant meet,
maar in de middenstand meet ik mooi geen 2,5Volt?
Ik meet rond de 0,37V in het midden naar links en rechts,
Mag ik dan zeggen dat de potmeter geen 50K Maar… 10 of 5K ongeveer moet zijn Henry?
(had niet ik verwacht...)
VrGr Rob
Mag ik zeggen 1K per volt? doe ik toch eerst 10K eigenwijs?
ik wacht ff af.
Waarde van de potmeter maakt niet zoveel uit, 5K, 10K, 50K is goed.
Wat niet goed is dat je geen 2.5V meet als de potmeter in het midden staat.
Een zijde van de portmeter moet aan de GND andere zijde aan de +5V en dan de loper naar A0 van je Arduino
Als je de pot in het midden zet moet je 2.5V meten, draai je de knop meer naar de GND pin dan zal deze 2.5V moeten afnemen.
Hallo 2N3055,
goed die meter kunnen we dus afschrijven! Het klopt nu wel!
MAAR,
dan blijft het nog niet goed kloppen!
Ik probeer de lage band (84.6MHz) te krijgen maar lukt niet met de potmeter,
wel als ik die andere code gebruikt!
Maar dan moet je steeds een frequentie invullen in Arduino IDE
die code *LIJKT* ook beter!
VrGr Rob
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Hallo Ronald,
die potmeter is nu echt wel goed! Lineair
maar het lijkt of ik een stukje van de band mis.
je kunt aan die Aruino code ook niet veel zien helaas.
// TEA5767 Example
#include <Wire.h>
#include <TEA5767Radio.h>
TEA5767Radio radio = TEA5767Radio();
void setup()
{
Wire.begin();
radio.setFrequency(84.66); // pick your own frequency
}
void loop()
{
}
Dit is de code met de potmeter:
//einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
#include <Wire.h>
#include <TEA5767Radio.h>
//Drehpotentiometer am analogen Pin A0 angeschlossen
#define poti A0
//erzeugen einer Instanz
TEA5767Radio radio = TEA5767Radio();
void setup(){
//begin der Kommunikation
Wire.begin();
}
void loop(){
//lesen des aktuellen Wertes
int value = analogRead(poti);
//mappen des Wertes auf einen gültigen Frequenzwert zwischen 760 und 1080
//und danach dur 10 teilen um so einen Gleitkommawert erhält.
float frequenz = map(value, 0, 1023, 760, 1080) / 10;
//setzen der Frequenz
radio.setFrequency(frequenz);
delay(125);
}
Misschien geeft de ADC niet precies 0 en 1023 terug in de uiterste standen van de potmeter.
Maar bijvoorbeeld 100 tot 923. Dan mis je inderdaad wat frequenties.
Verander dat rijtje
0, 1023, 760, 1080eens in:
100, 923, 760, 1080Hallo Kojazz,
Jammer Op de een of andere manier klopt het dan nog niet!
Ik hoopte enorm dat jij inderdaad met de oplossing kwam.
En je zou zeggen zo iets moet het toch zijn?
Eerlijk ik begrijp er echt ook helemaal niks van!
Hoe zit dat toch? Hoe werkt het?
Met die potmeter is de kwaliteit ook niet zo goed als met die simpele code?
Maar wat ik ook niet begrijp is,
die simpele code, hoe werkt die dan?
Want die frequentie (93.4MHz) moet toch omgezet worden in digitaal of zo iets?
Dankjewel voor de poging hoor Kojazz!
VrGr Rob
met de simpele code
ik zet hem met de hand op 84.6MHz en dan komt ie prachtig binnen.
Er zijn natuurlijk een paar problemen met instellen per potmeter:
- De spanning op de potmeter komt van de 5V voeding van de Arduino? Die is natuurlijk wel ongeveer 5V, maar daar zit ook aardig wat ruis op. En dan krijg je dus een instelling die steeds wordt veranderd. Wel ongeveer op de frequentie die je wilt hebben maar ook vaak net ernaast.
- En de map funktie werkt met integers. Met de map funktie wordt dat omgezet naar een frequentie tussen 78 en 108 Mhz, maar wel in stappen van 0.1 MHz. Dan kun je dus niet afstellen op iets als 88.66 want dat wordt afgerond naar 88.6.
Dus ik zou die potmeter gauw wegdoen en vervangen door een rotary encoder.
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Helemaal eens met deKees, en dat is uiteraard al door iemand gedaan.
https://github.com/Arduino3128/TEA5767_Encoder_Serial
- Use rotary encoder to tune into desired station.
- Push rotary encoder switch to select the staion.
Met een rotary decoder en LCD:
http://thezhut.com/?page_id=1069
[Bericht gewijzigd door Roland van Leusden op (13%)]
Misschien helpt het al als je niet steeds de frequentie naar de module schrijft. Dus alleen als de frequentie verandert:
/einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
#include <Wire.h>
#include <TEA5767Radio.h>
//Drehpotentiometer am analogen Pin A0 angeschlossen
#define poti A0
//erzeugen einer Instanz
TEA5767Radio radio = TEA5767Radio();
void setup()
{ //begin der Kommunikation
Wire.begin();
}
float Frequency;
void loop()
{ //lesen des aktuellen Wertes
int value = analogRead(poti);
//mappen des Wertes auf einen gültigen Frequenzwert zwischen 760 und 1080
//und danach dur 10 teilen um so einen Gleitkommawert erhält.
float NewFrequency = map(value, 0, 1023, 760, 1080) / 10;
// setzen der Frequenz
if(Frequency != NewFrequency)
{ radio.setFrequency(NewFrequency);
Frequency = NewFrequency;
}
delay(125);
}
Oke dus,
ik zal hem ook eens op een andere voeding zetten, is misschien wel een probeerseltje.
Dekees
als ik probeer om nieuw software er op te zetten zoals waar jij mee aan komt,
doet ie toch cijfers er voor zetten? Wat bij jou niet is?
Krijg foutmelding:
C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino:1:30: error: stray '\303' in program
/einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
^
C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino:1:31: error: stray '\274' in program
/einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
^
C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino:1:52: error: stray '\303' in program
/einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
^
C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino:1:53: error: stray '\244' in program
/einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
^
C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino:1:1: error: expected unqualified-id before '/' token
/einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
^
In file included from C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino:2:0:
C:\Users\Rob\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire\src/Wire.h:86:8: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
extern TwoWire Wire;
^~~~~~~
TwoWire_h
C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino: In function 'void setup()':
C:\Users\Rob\AppData\Local\Temp\.arduinoIDE-unsaved202318-19424-1ree2v7.vs7\sketch_feb8b\sketch_feb8b.ino:13:3: error: 'Wire' was not declared in this scope
Wire.begin();
^~~~
exit status 1
Compilation error: stray '\303' in program
dankjewel dekees en Ronald!
VrGr Rob
Roches
Domoticz en ESP8266, goede combo!!!
//einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
#include <Wire.h>
#include <TEA5767Radio.h>
//Drehpotentiometer am analogen Pin A0 angeschlossen
#define poti A0
//erzeugen einer Instanz
TEA5767Radio radio = TEA5767Radio();
void setup()
{ //begin der Kommunikation
Wire.begin();
}
float Frequency;
void loop()
{ //lesen des aktuellen Wertes
int value = analogRead(poti);
//mappen des Wertes auf einen gültigen Frequenzwert zwischen 760 und 1080
//und danach dur 10 teilen um so einen Gleitkommawert erhält.
float NewFrequency = map(value, 0, 1023, 760, 1080) / 10;
// setzen der Frequenz
if(Frequency != NewFrequency)
{ radio.setFrequency(NewFrequency);
Frequency = NewFrequency;
}
delay(125);
}
Ik heb hem ff voor je aangepast, in de eerste regel stond maar één / en dat hadden er twee moeten zijn...
Vergeet trouwens wat!
Ronald ik heb hier rommel genoeg maar dat LCD vind ik niet boeiend,
kan het ook zonder LCD? Daarbij is het schema niet zo HEEL ERG duidelijk.
Roches
Jou code doet het maar ik mis volgens mij gewoon een stuk band nog steeds?
Ik heb hier in mijn hokje een klein WFM op 84.7 de simpele code nog steeds geen probleem.
het valt mij ook op met potmeter is bij alles ook meer ruis?
( ik begrijp er echt niets / niks van! ) 
Nogmaals dank voor…
VrGr Rob
Roches
Domoticz en ESP8266, goede combo!!!
//einbinden der Bibliotheken für den FM Stereo Empfänger TEA5767
#include <Wire.h>
#include <TEA5767Radio.h>
//Drehpotentiometer am analogen Pin A0 angeschlossen
#define poti A0
//erzeugen einer Instanz
TEA5767Radio radio = TEA5767Radio();
void setup()
{ //begin der Kommunikation
Wire.begin();
Serial.begin(115200);
}
float Frequency;
void loop()
{ //lesen des aktuellen Wertes
int value = analogRead(poti);
//mappen des Wertes auf einen gültigen Frequenzwert zwischen 760 und 1080
//und danach dur 10 teilen um so einen Gleitkommawert erhält.
float NewFrequency = map(value, 0, 1023, 760, 1080) / 10;
// setzen der Frequenz
if(Frequency != NewFrequency)
{ radio.setFrequency(NewFrequency);
Frequency = NewFrequency;
Serial.println(Frequency);
}
delay(125); // Deze zou ik langer maken ongeveer 500
}
Nu print hij de frequentie in de serieele monitor, baudrate 115200.
Aanvulling: in plaats van m'n vorige suggestie kan je ook proberen de volgende regel aan te passen:
float frequenz = map(value, 0, 1023, 760, 1080) / 10;moet worden:
float frequenz = map(value, 0, 1023, 760, 1080) / 10.0;Of -als je de sketch van Roches probeert- :
float NewFrequency = map(value, 0, 1023, 760, 1080) / 10.0;Veel simpeler.
[Bericht gewijzigd door kojazz op (18%)]
HEEEEEEEEEEEEEEEEEEEeeeeeeeeejjjjjjjjjjjjjjj kojazz!!!
Hij doet het!!! 
Hij doet het nu ook weer mooier!
De potmeter is nog wel HEEL erg scherp en gevoelig MAAR . . .
Fijn mensen! Dit vind ik echt prachtig!
Hoe kan dit nu?
Maar kojazz Ik begrijp het nog steeds niet?
Die code? Hoe zit dat nou?
nu moet ik voorzichtig zijn!
kan het zijn dat er op de achtergrod nog iets tikt?
( ik moet zelf ff kijken wat dat/dit is )
hoe dan ook, hier ben ik wel HEEL erg blij mee! 
Nu heeft het ook nut om er een versterkertje achter te gaan zetten!
VrGr Rob
Klopt 
Als je deelt door 10 dan krijg je een integer result. Dus alleen hele megaherzen 82 83 84 enz.
Als je deelt door 10.0 dan krijg je een float als resultaat, dus dan wordt het 82.0 82.1 82.2 enz. Dat werkt veel beter natuurlijk.
Hallo dekees,
Nou ben er blij mee zo, hijs nog wel scherp hoor dat wel.
Je zou nu zeggen meerslagen potmeter of zo...
Schreef ook al nu word het ook de moeite waard om er nog meer aandacht aan te besteden.
LF versterker er achter want zat nog steeds met oordopjes te klooien.
En moet er nog eentje hebben liggen ook nog even mee kijken.
En dingetjes als beeldscherm veroorzaken storing en zo…
Maar toch heb ik zo iets van hijs niet slecht!
VrGr Rob
Schit-te-rend Rob! 
Van jouw enthousiasme word ik dan weer vrolijk. Haha.
Wat Kees zegt, dat is inderdaad de uitleg. Die map() functie zelf is bruikbaar. Geen gekke verdere effecten te verwachten.
Op de site van meneer Draeger zie ik dat alle zichtbare code al wel "10.0f" heeft, maar in zijn download (de .ino in de zip file), staat nog 10.
Het had ook 10. mogen zijn, of 10.0 . "10.0f" is dubbelop maar werkt ook.
Knutsel ze nog!!