![Esp8266 klok- en pulsgenerator - Ajarnpa Esp8266 klok- en pulsgenerator - Ajarnpa](https://i.howwhatproduce.com/images/001/image-2609-j.webp)
Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
![Esp8266 Klok- en pulsgenerator Esp8266 Klok- en pulsgenerator](https://i.howwhatproduce.com/images/001/image-2609-1-j.webp)
Dit instructable is voor een eenvoudig stuk testapparatuur; een klok en pulsgenerator.
Het gebruikt de i2S hardware-interface op een esp8266 om een testklok of een pulssequentie te genereren. Dit maakt het eenvoudig in elkaar te zetten omdat er geen speciale hardware nodig is voor een basissysteem.
- Klokgeneratie van 2Hz tot 20MHz
- Elke frequentie kan worden gebruikt
- Zoekt naar de beste match van klokverdelers en bitlengte vanaf 160MHz basisklok
- Meestal beter dan 0,1% overeenkomst voor frequenties < 100 KHz
- Selectie ruimteverhouding markeren
- Tolerantie voor frequentieaanpassing kan worden versoepeld om een betere verwerking van de markeringsruimte te krijgen
- Pulstrein genereren op basis van definities in bestanden
- Webgebaseerde GUI voor bediening vanaf pc, telefoon, tablet
- Wifi-beheer om een eenvoudige initiële routerconfiguratie mogelijk te maken
- OTA-software-update
- Gebruikt een speciale I2s-bibliotheek (i2sTXcircular) voor flexibele controle
Stap 1: Hardware
![Hardware Hardware](https://i.howwhatproduce.com/images/001/image-2609-2-j.webp)
![Hardware Hardware](https://i.howwhatproduce.com/images/001/image-2609-3-j.webp)
Ik heb de mijne geconstrueerd in een 3D-geprinte behuizing met een 18650-batterij met een USB-oplader, een aan / uit-schakelaar, een 3-pins header-stekker voor het uitgangssignaal.
De behuizing heeft een smalle sleuf voor het vasthouden van de elektronica naast de batterij.
Het signaal komt uit de GPIO3-pin (RX). Dit kan direct worden gebruikt, maar voor een hogere schijfcapaciteit heb ik ervoor gekozen om een kleine buffer op te nemen met een 74LVC2G34. Ik heb de twee buffers in dit apparaat parallel geschakeld om nog meer schijfcapaciteit te bieden.
Alles gebeurt gewoon in de software in het apparaat en de besturing wordt gedaan door een webserver te bieden, zodat een browser op een pc, telefoon of tablet volledige controle biedt.
Stap 2: Software
Gebruik de code op https://github.com/roberttidey/espI2sClockGen om de software te bouwen en in te stellen
- Installeer i2sTXcircular-bibliotheek (meegeleverd)
- Installeer de BaseSupport-bibliotheek (https://github.com/roberttidey/BaseSupport)
- WifiManager-bibliotheek toevoegen
- Pas wachtwoorden aan in BaseConfig.h
- Compileren en uploaden in Arduino-omgeving
- Stel wifi-netwerkbeheer in door verbinding te maken met AP en te bladeren naar 192.168.4.1
- upload basisset bestanden uit de gegevensmap met behulp van STA ip/upload
- verdere uploads kunnen dan worden gedaan met behulp van ip/edit - normale interface is op ip/
Hoe het werkt
De i2sTXcircular-bibliotheek maakt het mogelijk om een cirkelvormige keten van buffers te bouwen die vervolgens automatisch worden uitgevoerd door de i2S-hardware op de esp8266 met behulp van DMA, zodat er geen software-overhead wordt gebruikt als deze eenmaal actief is.
De basisklok op het apparaat is 160 MHz, die wordt gedeeld door een paar verdelers. Het uitgangssignaal wordt dan bepaald door welke gegevens in de buffers worden geplaatst die worden uitgevoerd door de verdeelde klok. Door de twee delers te kiezen en door potentieel meerdere databits te gebruiken om elke puls weer te geven, kan een frequentie vrij goed worden benaderd. Het maakt het ook mogelijk om de duty cycle (mark/space-verhouding van klokpulsen) te variëren.
De Javascript-code van de browser probeert de keuze van parameters te optimaliseren om een goede overeenkomst te geven met elke geselecteerde frequentie.
Hoewel het hoofddoel het genereren van klokken is, is het ook mogelijk om complexere pulstreinen te produceren door een definitie in een pulsbestand te plaatsen dat vervolgens de gegevens bestuurt die worden gegenereerd en in de circulaire buffer worden geplaatst. Details zijn opgenomen in de voorbeeldpulsbestanden.
Stap 3: Bediening
De bediening wordt bestuurd door de browserinterface die wordt weergegeven in de hoofdafbeelding.
Voor het genereren van normale klokken selecteert u gewoon de doelklok en de %-ratio van de markeringsruimte. De werkelijk bereikte klok en de fout worden weergegeven. Wanneer de knop Klok genereren wordt ingedrukt, worden de parameters naar het apparaat verzonden en begint het genereren van de klok met behulp van deze parameters.
Door op de balk Geavanceerd te klikken, kunnen meer details worden bekeken.
De bitklok toont het sub-veelvoud van 160MHz dat wordt gebruikt.
Teken- en spatiebits laten zien hoeveel bits worden gebruikt om tekens en spaties weer te geven.
Div1 en Div2 tonen de twee delers die zijn gekozen om de dichtstbijzijnde bitklok te genereren.
Normaal gesproken worden de twee verdelers gekozen om de dichtstbijzijnde overeenkomst met de gekozen frequentie te geven en om het aantal gebruikte databits te maximaliseren, wat helpt bij het bieden van meer flexibiliteit bij het toestaan van verschillende werkcycli. Soms resulteert de beste match echter in een laag aantal bits, waardoor er weinig ruimte is voor het wijzigen van de duty-cycle. Door de tolerantie %-waarde te wijzigen, worden de delers gekozen om een frequentie binnen deze tolerantie te geven, maar met mogelijk meer databits. Probeer bijvoorbeeld tolerantie in te stellen op 0,5 of 1.
U kunt ook het aantal bits per woord instellen om de keuze van parameters te regelen. 0 (standaard) betekent dat u bits per woord kiest. Een enkel nummer (bijvoorbeeld 24) betekent dat u alleen parameters kiest die hiermee overeenkomen. U kunt ook een bereik invoeren (bijvoorbeeld 24, 31). Dit werkt alleen voor doel Hz boven 10KHz, onder deze schaal wordt van kracht zodat het getal wordt vermenigvuldigd.
De buffergrootte toont de totale buffer die wordt gebruikt in 32-bits woorden. Dit is gekozen om ervoor te zorgen dat de klokpuls een perfecte cirkelvormige pasvorm in de buffer vormt. Intern is deze buffer opgesplitst in een aantal kleinere rbuffers om de geketende DMA te laten functioneren.
Kies voor pulsen de pulsen TAB. Dit toont de beschikbare pulsbestanden en een knop ernaast die een pulstrein zal produceren op basis van zijn definitie. U kunt de inhoud van het bestand bekijken door op de link te klikken. Meer pulse-bestanden kunnen worden geüpload met behulp van de ip/edit-bestandsbrowser. Ze moeten beginnen met de naam pulse.
Aanbevolen:
Gloeiende klok met luchtbellen; Mogelijk gemaakt door ESP8266: 7 stappen (met afbeeldingen)
![Gloeiende klok met luchtbellen; Mogelijk gemaakt door ESP8266: 7 stappen (met afbeeldingen) Gloeiende klok met luchtbellen; Mogelijk gemaakt door ESP8266: 7 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/002/image-4986-j.webp)
Gloeiende klok met luchtbellen; Aangedreven door ESP8266: "gloeiende luchtbellenklok" geeft de tijd en enkele afbeeldingen weer door verlichte luchtbellen in vloeistof. In tegenstelling tot een led-matrixdisplay, geven langzaam zwevende, gloeiende luchtbellen me iets om te ontspannen. Begin jaren 90 stelde ik me "bubbeldisplay" voor. niet
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
![Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen) Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/005/image-14045-j.webp)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
ESP8266 netwerkklok zonder enige RTC - Nodemcu NTP-klok Geen RTC - INTERNET KLOKPROJECT: 4 stappen
![ESP8266 netwerkklok zonder enige RTC - Nodemcu NTP-klok Geen RTC - INTERNET KLOKPROJECT: 4 stappen ESP8266 netwerkklok zonder enige RTC - Nodemcu NTP-klok Geen RTC - INTERNET KLOKPROJECT: 4 stappen](https://i.howwhatproduce.com/images/011/image-31107-j.webp)
ESP8266 netwerkklok zonder enige RTC | Nodemcu NTP-klok Geen RTC | INTERNET KLOKPROJECT: In het project zal een klokproject worden gemaakt zonder RTC, het kost tijd van internet met wifi en het zal het weergeven op het st7735-display
Een klok maken van een klok: 11 stappen (met afbeeldingen)
![Een klok maken van een klok: 11 stappen (met afbeeldingen) Een klok maken van een klok: 11 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/003/image-6412-78-j.webp)
Een klok maken van een klok: in deze Instructable neem ik een bestaande klok en creëer ik een betere klok. We gaan van de afbeelding links naar de afbeelding rechts. Voordat u op uw eigen klok begint, moet u weten dat het opnieuw in elkaar zetten een uitdaging kan zijn, aangezien de piv
Minimalistische IoT-klok (met ESP8266, Adafruit.io, IFTTT en Arduino IDE): 10 stappen (met afbeeldingen)
![Minimalistische IoT-klok (met ESP8266, Adafruit.io, IFTTT en Arduino IDE): 10 stappen (met afbeeldingen) Minimalistische IoT-klok (met ESP8266, Adafruit.io, IFTTT en Arduino IDE): 10 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/001/image-563-69-j.webp)
Minimalistische IoT-klok (met ESP8266, Adafruit.io, IFTTT en Arduino IDE): In deze tutorial laat ik zien hoe je een minimalistische klok kunt maken die gesynchroniseerd is met internet. Ik heb het getest met twee verschillende op ESP8266 gebaseerde boards: Firebeetle en NodeMCU. De microcontroller krijgt de huidige tijd van een Google-server en geeft deze weer op een