scratch arduino (automatisch luikje)

NO = Normally Open

Dus... zonder magneet moet je oneindig meten. Met het magneet erbij zal het contact sluiten en moet je dus 0 Ohm meten.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Nog eens opnieuw die sensor, je noemt het ook een magneet, meten.
Moet open zijn, dus oneindig hoog met de ohm meter, zonder magneet in de buurt.
Met magneet erbij dan moet je laag ohm meten, die 0.7 is dan ok.
Die sensoren zijn robuust dus niet zomaar defekt.

Oh oke...ik blijf 0.7 meten als de magneet niet in de buurt is. Doe ik de magneet erbij dan blijft die gewoon op die 0.7 staan.

Of zal ik verkeerd meten? Ik sluit gewoon die twee draden van de magneetsensor aan op beide pennen van de meter. oneindig wordt toch gewoon met een 1 weergegeven?

Ik kan me ook niet voorstellen dat die sensoren kapot zijn.

oneindig wordt toch gewoon met een 1 weergegeven?

Dat is geen wet van Meden en Perzen, mijn beide multimeters geven dan OL , dat staat voor "Open Lus" of zo, dacht ik. De ene multimeter is de andere niet.

Alles wat je post wijst toch wel in de richting van defecte magneetdetectors hoor, maar je zult het pas zeker weten als de boel eenmaal werkt, dan kun je component na component verwisselen.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Duidelijk zat toch, als de magneetsensor NO (normally open) is, en de sensor zonder magneet bijna 0 Ohm meet, is de sensor defect. Vervangen dus.

Diverse projecten en experimenten: www.elexperiment.nl

Ja inderdaad dat is ook zo. Ik ga nieuwe bestellen.

Ik laat het nog wel even weten als ik de nieuwe sensoren binnen heb.

In ieder geval heel erg bedankt voor alle reacties. Heb een beter beeld gekregen hoe het allemaal globaal werkt :-)

Nog een laatste vraagje hoor.

Maakt het nog uit of ik een NO of een NC aanschaf?

buckfast_beekeeper

Golden Member

JA. Je moet een NO contact hebben. Een NC is in gesloten toestand en opent zodra er een magneet in de buurt komt.

Honing kan je importeren, bestuiving niet.

Oke, heel erg bedankt voor je reactie.

Dat hangt wel van de software af. En hoe ie aangesloten zit op de micro. En dat weten we nog steeds niet.

Ps, post eens een foto van die sensor, ik word nou toch wel benieuwd.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Shiptronic

Golden Member

schema: https://www.circuitsonline.net/forum/file/35502

en software staan toch in de OP?

[Bericht gewijzigd door Shiptronic op 1 oktober 2018 21:41:24 (23%)]

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Bij deze nog een foto van de magneet en de constructie. Het is nog even een testversie hoor :-)

Ik heb nieuwe onderdelen besteld en ook een Breadboard, dus daar kan ik het ook beter op testen.

Als ik de nieuwe magneetsensor binnen heb zal ik die eerst eens gaan doormeten.

Of zien jullie nog iets bijzonders aan de magneetsensor?

De firmware hadden we, maar de hardware niet. Geen idee waar je (fcapri) dat vandaan haalt, maar ok.
In die magneetsensoren zit een reed-contact. Als je daar wat teveel stroom doorheen stuurt blijven ze nog wel een keertje plakken. Zoiets zal wel gebeurd zijn.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Zie ik het goed dat er twee draden aan de sensor zitten?
Kan het zijn dat dit een dubbele reedsensor is?
Als er twee draadjes of een afscherming en een draad in elke kabel zitten moet je daar eens over meten.

Mvg Rieks.

Sorry dubbele post

Mvg Rieks.

[Bericht gewijzigd door Rieks op 2 oktober 2018 21:42:33 (78%)]

De reedswitch trekt A1 naar massa als deze bediend is.
Als de switch open is zweeft de ingang? Of hoe werkt dat met een arduino?

Ik heb de nieuwe sensor binnen en ik krijg nu inderdaad als de magneten tegen elkaar aan gaan de nulletjes in beeld.

Maar ik heb de NO besteld, maar ik ben bang dat ik de NC moet hebben... Als de magneetsensors elkaar raken dan moet de magneetswitch op 1 komen te staan, maar nu komt die op 0. Dus exact andersom.

Doet een NC magneetsensor precies het tegenovergestelde als een NO?

BVZ

Golden Member

Op 3 oktober 2018 20:30:33 schreef hans1234:
Doet een NC magneetsensor precies het tegenovergestelde als een NO?

Ja. Maar dat kun je in de software prima oplossen. Een andere sensor bestellen is dus niet nodig.

Evengoed is de NO versie de meest gangbare en logische, dus kijk eerst maar even of er verder niks mankeert.

[Bericht gewijzigd door BVZ op 3 oktober 2018 20:37:02 (17%)]

Alles doet het nu alleen de magneetsensor moet precies andersom.

Heeft iemand een idee wat ik zal moeten aanpassen in de code?

Ik denk dat ik dit gewoon moet omdraaien:

code:

void OpenLuik(void) {
  /*************************/
  while (digitalRead(magneetPin) == 0) { //lees de switch uit 0=nog niet boven

Dus die ==0 aanpassen in 1

code:

// beslissen of luik open, dicht of blijven moet
  if ((gemiddelde <= LuikWelterusten) && (digitalRead(magneetPin) == 1)) { // luik moet openstaan 1=luik is bovenaan
    SluitLuik();
    Luikstatus = 1;

En bij deze die ==1 aanpassen in 0

BVZ

Golden Member

Op 3 oktober 2018 20:39:21 schreef hans1234:
Alles doet het nu alleen de magneetsensor moet precies andersom.

Heeft iemand een idee wat ik zal moeten aanpassen in de code?

Volgens mij hoef je niks aan te passen in de code:

c code:

pinMode(magneetPin, INPUT_PULLUP);       //tussen 0 en de pin

Dat wekt de indruk dat de standaardwaarde == 1, dus als de 'magneet' ten tonele verschijnt die '0' moet worden.

EDIT: Je kunt het evengoed wel proberen natuurlijk. In het ergste geval werkt je programma nog steeds niet.

[Bericht gewijzigd door BVZ op 3 oktober 2018 20:49:17 (10%)]

Oh oke. Maar als ik dit zo lees dan stopt die pas met draaien als die op 1 komt. Bij 1 is die boven:

code:

// beslissen of luik open, dicht of blijven moet
  if ((gemiddelde <= LuikWelterusten) && (digitalRead(magneetPin) == 1)) { // luik moet openstaan 1=luik is bovenaan
    SluitLuik();
    Luikstatus = 1;
BVZ

Golden Member

Op 3 oktober 2018 20:51:48 schreef hans1234:
Oh oke. Maar als ik dit zo lees dan stopt die pas met draaien als die op 1 komt. Bij 1 is die boven:

Kan. Mits je sensor onderaan zit, anders is alles wat niet op een paar cm van onderaan zit automatisch 'boven'.

Want: NO -> normally open. Dus zolang geen magneet heel dicht in de buurt is geeft dat via de 'PULLUP' een '1' retour.

De sensor zit wel boven. Als er geen magneet in de buurt is dan geeft die inderdaad die 1 terug.

Als het dan donker wordt dan gaat de luik inderdaad een paar seconden naar beneden. Maar als het licht wordt dan doet die niks omdat die magneet nog steeds die 1 weergeeft. In de code geeft die aan dat de luik al boven is.

Als ik dan de magneet er tegen aan houd dan geeft die de 0 terug en gaat die na een tijdje weer omhoog maar blijft draaien omdat die een 1 terug moet krijgen voordat die stopt.

De 1 en de 0 moeten dus in de software aangepast worden. Dus 0 is boven en 1 is beneden. Dan zal die het moeten doen :-)..denk ik.

Ik zal gaan uitzoeken wat ik nu precies moet aanpassen in de code om dat voor elkaar te krijgen..

Ik ben een beginner mer Arduino, en lees vol intresse mee met dit draadje!
Het is erg leerzaam!
En nu vroeg ik mij af of je met deze magneet sensor/schakelaar ook rekening moet houden met ‘debounce’? (Sorry: Ik weet het Nederlandse woord hier niet van)