Ik ben weer bezig met een buizen tester
Ik wil de steilheid van een buis meten.
Bij een verandering van 1 volt zal ik een analoge ingang ook verandering zien .
Dit verschil wil ik op een lcd display zichtbaar maken.
Ik denk bv aan een knop indrukken de dan de stuur rooster spanningveranderen en dan de knop loslaten en kijken wat het verschil is . Ben er al een tijdje mee bezig.
Mijn vraag is kan je een analoge waarde opslaan bij indrikken van een knop?
Ben benieuwd of iemand mij de goede richting op kan helpen.
Je bericht is verhuisd naar een geschiktere forum categorie @Norbert12
Neem in de toekomst a.u.b. wat tijd nemen om de meest geschikte (forum categorie) te kiezen voor je onderwerp. Er is een "About the _____ category" onderwerp aan de top van iedere categorie die het doel van die categorie aangeeft.
Dit is een belangrijk onderdeel van het verantwoordelijk gebruik van het forum zoals is uitgelegd in de Nederlandse gids "Hoe haal je het meeste uit het forum" en in de uitgebreidere Engelse gids "How to get the best out of this forum". Deze gidsen bevatten ook een weelde aan andere informatie, lees het a.u.b.
Bij voorbaat dank voor je medewerking.
Kun je een schemaatje tekenen hoe je alles denkt aan te sluiten of hebt aangesloten?
Ik ben geen buizen man, ik weet alleen dat ik er mijn vingers niet in moet steken omdat er ergens hoge voedingsspanningen zijn.
Misschien is het niet noodzakelijk om de stuur spanning te meten. Je kunt bijhouden hoe vaak een knop is ingedrukt en op die manier bijhouden wat de stuur spanning is.
Kan prima. We hebben wel een schema nodig om je te kunnen helpen.
En ik hoop dat je een beetje verstand hebt van buizen en de hoge spanningen die daar normaal zijn (300 VDC).
Leuk dat jullie mee willen denken. de spanningen en stromen worden omgezet naar waarden van 0 tot 5 volt. Uiteindelijk komt het erop neer dat er een spanningsverandering van 0-5 volt geregistreerd moet worden. Neem dit als voorbeeld:. Zodra de knop wordt ingedrukt is de spanning bv. 2 volt .Nu wordt de spanning handmatig opgehoogd naar 3 volt en dan wordt de knop losgelaten. Nu zou de toename zichtbaar moeten worden dus 1 volt en dat wordt dan op het lcd scherm weergegeven. Hoe een waarde wordt weergegeven is op de lcd bekend. het gaat alleen om de spanningstoename te berekenen.
Zonder schema ga ik hier niet aan beginnen. Ik wil zien wat je van plan bent om gevaarlijke situaties te voorkomen...
Hoi Norbert12.
Tot nog toe vind ik je beschrijvingen niet erg duidelijk (sorry, ben een beejte direct vandaag).
Jij weet natuurlijk precies wat je bedoelt, en mogelijk zijn er hier mensen die ook wel eens wat in die richting gedaan hebben.
Maar ik weet nog steeds niet wat je nu precies wil doen en wat je precies vraagt.
Analoge waarde opslaan bij drukken op je knop lijkt me de echte vraag in je eerste bericht, maar dat lijkt me redelijk triviaal.
Dus waar zie jij dan je struikelblokken ?
Mijn vraag is dus deze:
Wat heb je nu, wat verwacht je daarvan, en wat krijg je daarvoor in de plaats ?
Verder dien je te weten dat bijvoorbeeld een spanningsdeler de spanning wel omlaag kan brengen, maar daarmee is het nog steeds geen (aanraak) veilige spanning.
Maar omdat je daar nog niets over gedeeld hebt, kunnen we daar verder ook niets over vertellen en/of adviseren.
Ik ga even een gooi doen aan de hand van jouw 2e bericht.
- Is de knop ingedrukt ?
- Zo nee, ga naar stap 7
- Zo ja , doe een meting aan de ingang en onthoud het resultaat.
- Was de knop eerder al ingedrukt ?
- Zo nee, onthoud de onthouden waarde als eerste resultaat
- Zo ja, ga verder naar stap 1.
- Trek het eerste resultaat af van de onthouden waarde en sla dat op als eindresultaat.
- Stuur het eindresultaat naar je display, tenzij dat nul is.
- Wanneer je met het eindresultaat nog iets wil doen sla het dan op als doorgeefresultaat
- Wis alle gebruikte waardes, behalve een eventueel doorgeefresultaat.
Ik heb geen idee of dit stappenplan is waar jij naar zoekt.
Maar probeer altijd op deze manier te beginnen, ik denk dat ik iets soortgelijks elk 2e van mijn berichten wel zeg.
Wanneer dit niet is wat je zoekt, zie dan mijn vorige bericht hier direct boven.
Uit eindelijk zelf al aardig voor elkaar gekregen aan de hand van jullie tips.
Misschien ga ik tegen meer problemen oplopen en kom ik weer in de lucht.
Bedankt in ieder geval. mvrgr
Norbert
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int buttonPin = 2; // Pin waarop de knop is aangesloten
float opgeslagenWaarde = 0; // Variabele om de opgeslagen spanning op te slaan
bool knopIngedrukt = false; // Status van de knop
// Initialiseer LCD (adres 0x27, 16 kolommen, 2 rijen)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Stel de knop-pin in als input met pull-up
lcd.init(); // Start het LCD-scherm
lcd.backlight(); // Zet de backlight aan
lcd.print("Opgeslagen: "); // Welkomsttekst
Serial.begin(9600); // Voor debuggen
}
void loop() {
int knopStatus = digitalRead(buttonPin); // Lees de status van de knop
float huidigeWaarde = (analogRead(A0) * 5.0) / 1023.0; // Bereken huidige spanning
if (knopStatus == LOW && !knopIngedrukt) { // Controleer of de knop is ingedrukt
opgeslagenWaarde = huidigeWaarde; // Sla de huidige spanning op
knopIngedrukt = true; // Zorg dat je alleen eenmalig opslaat
// Toon opgeslagen spanning op de eerste rij
lcd.setCursor(0, 0);
lcd.print("Opgeslagen: ");
lcd.print(opgeslagenWaarde, 2);
lcd.print(" V");
Serial.print("Opgeslagen spanning: ");
Serial.print(opgeslagenWaarde, 2);
Serial.println(" V");
}
if (knopStatus == HIGH) { // Reset knopstatus wanneer knop is losgelaten
knopIngedrukt = false;
}
// Bereken het verschil tussen opgeslagen en huidige spanning
float verschil = huidigeWaarde - opgeslagenWaarde;
// Toon verschil op de tweede rij
lcd.setCursor(0, 1);
lcd.print("Verschil: ");
lcd.print(verschil, 2); // Toon het verschil met 2 decimalen
lcd.print(" V "); // Zorg dat er geen oude waarden blijven staan
// Print verschil in de Serial Monitor
Serial.print("Huidige spanning: ");
Serial.print(huidigeWaarde, 2);
Serial.print(" V, Verschil: ");
Serial.print(verschil, 2);
Serial.println(" V");
delay(500); // Wacht even voordat de spanning opnieuw wordt berekend
}