Zelf een sensor maken

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 2
Geregistreerd: 31 Jan 2020, 00:03

Zelf een sensor maken

Berichtdoor janjansen » 31 Jan 2020, 00:30

Ik wil zelf een windmeter maken met behulp van de Arduino Uno. Ik wil hierbij stroom uit één pin laten komen, en hierheen een draadje maken. Deze heeft dan meerdere pins om te raken en ik wil dan dat de Arduino detecteert met welke pin dit draadje verbonden is. Deze informatie moet de Uno dan omzetten in een tekst op een LCD Display. De display heb ik aan de praat gekregen, maar het detecteren welke pins verbonden zijn werkt niet goed, waardoor de tekst ook niet goed uitkomt. Ik gebruik hierbij if. Is er een manier om dit detecteren wel te kunnen doen, of kan dat niet?

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Zelf een sensor maken

Berichtdoor Koepel » 31 Jan 2020, 02:05

Hallo, welkom op dit forum.

Kun je de sketch laten zien en een foto, schema of tekening, zodat we het begrijpen ?
Wil je de windrichting of de windsnelheid meten ?

Als de draad even iets raakt, dan kun je die waarde vasthouden, totdat het met een andere contact maakt.
Je zou zelfs een filter in software kunnen maken, dat als de draad overal tegen rammelt, dat je dan het gemiddelde krijgt.

Berichten: 2
Geregistreerd: 31 Jan 2020, 00:03

Re: Zelf een sensor maken

Berichtdoor janjansen » 04 Feb 2020, 21:43

Dit is de code die ik heb gebruikt:

#include<LiquidCrystal.h>
LiquidCrystal lcd(0, 1, 8, 9, 10, 11);

void setup() {
// put your setup code here, to run once:
lcd.begin(16, 2);
pinMode(4, OUTPUT);
pinMode(13, INPUT);
pinMode(12, INPUT);
pinMode(7, INPUT);
pinMode(6, INPUT);
pinMode(5, INPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(4, HIGH);
lcd.setCursor(0, 1);

if
(digitalRead(13) == HIGH){
lcd.print("Voor, rood");}

if
(digitalRead(12) == HIGH){
lcd.print("Ruim, oranje");}

if
(digitalRead(7) == HIGH){
lcd.print("Half, geel");}

if
(digitalRead(6) == HIGH){
lcd.print("Aan, groen");}

if
(digitalRead(5) == HIGH){
lcd.print("In de wind!");}

else{
lcd.print("error");
}
}


Ik dacht dat het er misschien aan lag dat elke pin ook nog met de ground-pin verbonden moest worden, maar dat werkte helaas ook niet. Ik wil hiermee de richting van de wind meten. Ik heb meerdere geleidende plaatjes gemaakt, en die op een houten donutvorm geplakt en die weer verbonden aan de pins die ik hier als input heb neergezet. Het idee is dat als ik met een draadje vanaf pin 4 over de geleidende plaatjes ga, er op het schermpje de bijbehorende tekst komt te staan.

Berichten: 45
Geregistreerd: 08 Jan 2020, 17:23

Re: Zelf een sensor maken

Berichtdoor RonalT » 04 Feb 2020, 23:05

Hallo Jan, om te beginnen denk ik dat je een paar dingen moet toevoegen/aanpassen.
cpp code
lcd.init();                                                            // initializeer het LCD display.
lcd.backlight(); // zet de backlight aan.
Serial.begin(9600); // initialize seriele communicatie op 9600 bits per seconde.

dan krijg je waarschijnlijk iets op het display. Let wel even op, ik heb een I2C display met 4 regels en 20 karakters. Dus niet domweg overnemen wat ik schrijf.


Verder heb je
cpp code
digitalWrite(4, HIGH);

in je sketch staan. Maar dat is niet de methode. Als je ingangen van een hoog signaal wilt voorzien stuur je er een PLUS 5 VOLT naar toe. En die haal je aan de andere kant van een UNO. Kijk daar maar eens naar....
En als je geen HOOG signaal naar een ingang stuurt moet je zorgen dat hij aan de nul of min komt te liggen.

En kijk eens naar een van de lessen van Bas van Dijk. https://arduino-lessen.nl/les/led-met-arduino-schakelen-via-drukknop

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 14 gasten