2 nivo sensoren aansluiten en programmeren

Geef hier suggesties voor extra onderwerpen of andere dingen die je graag gewijzigd zou willen zien
Berichten: 3
Geregistreerd: 09 Feb 2017, 17:25

2 nivo sensoren aansluiten en programmeren

Berichtdoor gierf1 » 10 Feb 2017, 15:39

Hallo ik ben Frans beginneling met Arduino.

ik ben een camper aan het bouwen met vuilwater en schoonwater tank, waar ik via een display de niveau om beurten via een drukknop wil uitlezen.

mijn probleem in om een tweede nivosensor te programmeren.
ik heb een code gedownload voor een sensor dat werkt prima, maar een tweede er bij te programmeren lukt niet.

wie van jullie kan mij daarbij helpen

groetjes Frans

Advertisement

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

Re: 2 nivo sensoren aansluiten en programmeren

Berichtdoor Koepel » 10 Feb 2017, 20:59

Hallo, kun je jouw sketch laten zien ?

Kun je het probleem beschrijven ? Bijvoorbeeld twee setup() en twee loop() samenvoegen, of heb je veel delay() die in de weg zit ? Het gaat dus niet om de werkende sketch voor één sensor, maar het gaat er om dat we zien waar je vast loopt met de tweede sensor.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: 2 nivo sensoren aansluiten en programmeren

Berichtdoor shooter » 10 Feb 2017, 23:35

overal waar je een tweede regel nodig hebt kopieer je de eerste en noem je er een 1 en de andere 2
dus bijv sensorpin wordt sensorpin1 en sensorpin2
enz.
paul deelen
shooter@home.nl

Berichten: 3
Geregistreerd: 09 Feb 2017, 17:25

Re: 2 nivo sensoren aansluiten en programmeren

Berichtdoor gierf1 » 11 Feb 2017, 17:03

met de benoeming van sensorpin1 heb ik geprobeerd,werkt niet.
de benaming die voor opstaat in de declaratie wordt in het programma verwerkt.

Berichten: 3
Geregistreerd: 09 Feb 2017, 17:25

Re: 2 nivo sensoren aansluiten en programmeren

Berichtdoor gierf1 » 11 Feb 2017, 17:23

niveauregeling_2_sensoren.rar
(1.39 KiB) 457 keer gedownload
[Koepel"]Hallo, kun je jouw sketch laten zien ?

Kun je het probleem beschrijven ? Bijvoorbeeld twee setup() en twee loop() samenvoegen, of heb je veel delay() die in de weg zit ? Het gaat dus niet om de werkende sketch voor één sensor, maar het gaat er om dat we zien waar je vast loopt met de tweede sensor.[/quote]

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

Re: 2 nivo sensoren aansluiten en programmeren

Berichtdoor Koepel » 11 Feb 2017, 21:03

Er is een knop "Code" voor "code tags" [ code ] en [ /code ]. Of kies de "Select a Syntax" en dan "C++".
Wanneer je de code tussen "code tags" zet, dan is het gemakkelijker te lezen.

Dit is je code uit het rar bestand.
cpp code
/* HC-SR04 Sensor
dealextreme.com/p/hc-sr04-ultrasonic-sensor-distance-measuring-module-133696

This sketch reads a HC-SR04 ultrasonic rangefinder and returns the
distance to the closest object in range. To do this, it sends a pulse
to the sensor to initiate a reading, then listens for a pulse
to return. The length of the returning pulse is proportional to
the distance of the object from the sensor.

The circuit:
* VCC connection of the sensor attached to +5V
* GND connection of the sensor attached to ground
* TRIG connection of the sensor attached to digital pin 2
* ECHO connection of the sensor attached to digital pin 4


Original code for Ping))) example was created by David A. Mellis
Adapted for HC-SR04 by Tautvidas Sipavicius

This example code is in the public domain.
*/
const int trigPin1 = 5;
const int echoPin1 = 7;
const int trigPin = 2;
const int echoPin = 4;
const int redPin = 8;
const int greenPin = 9;
int distances[10];
int arraycounter=0;
int avgdist = 0;
int ttldist = 0;
int loopcount = 0;

void setup() {
// initialize serial communication:
Serial.begin(9600);
for (int i=0;i<10;i++) {
distances[i]=0;
}
}

void loop()
{
if (arraycounter>=10){
arraycounter=0;
}
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm;

// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(trigPin, OUTPUT);
pinMode(trigPin1, OUTPUT);
digitalWrite(trigPin, LOW);
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
digitalWrite(trigPin1, LOW);

// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
pinMode(echoPin1, INPUT);
pinMode(redPin,OUTPUT);
pinMode(greenPin,OUTPUT);
duration = pulseIn(echoPin, HIGH);

// convert the time into a distance
cm = microsecondsToCentimeters(duration);
distances[arraycounter] = cm;
ttldist=0;
for (int i=0;i<10;i++) {
ttldist+=distances[i];
}
avgdist=ttldist/10;
if (avgdist==0 || avgdist > 200) {
if (arraycounter%2==0) {
digitalWrite(redPin, HIGH);
} else {
digitalWrite(redPin, LOW);
}
} else if (avgdist>80) {
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
} else if (avgdist<=80 && avgdist>70) {
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
} else {
digitalWrite(greenPin, HIGH);
digitalWrite(redPin, LOW);
}
Serial.print(cm);
Serial.print("cm, ");
Serial.print(avgdist);
Serial.print(" gemiddeld");
Serial.println();
delay(100);
arraycounter++;
}

long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}


Je kunt niet twee ultrasoon sensors tegelijkertijd gebruiken. Je kunt ze wel om-en-om gebruiken.
Verder zie ik dat je verschillende stijlen voor de tekst gebruikt. Kun je op Ctrl+T drukken, dan wordt alles opnieuw opgemaakt.
Kies een stijl die bij je past, en gebruik de '{' en '}' en het inspringen consequent op dezelfde manier.
Als je dat doet dan is de code gemakkelijker te lezen, en kun je ook zelf de structuur van de code beter zien.

Wat dacht je van de NewPing library ?
https://bitbucket.org/teckel12/arduino-new-ping
Die library schijnt meerdere sensors aan te kunnen:
https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home#!ping-3-sensors-sketch
Maar ik weet niet precies hoe dat werkt, ik zie die bladzijde ook maar voor het eerst :o

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: 2 nivo sensoren aansluiten en programmeren

Berichtdoor shooter » 11 Feb 2017, 23:19

pinmode hoort niet in de loop wel in de setup
lees hoe je een SR moet doen, dan doe je dus eerst de ene helemaal behandelen en daarna de volgende. kijk ook eens wat een functie is (onderaan heb je er een staan)
paul deelen
shooter@home.nl

Terug naar Forum suggesties

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten