Arduino Forum

International => Nederlands => Topic started by: castel on Apr 23, 2015, 07:40 pm

Title: circuit accelerometer - vibratie
Post by: castel on Apr 23, 2015, 07:40 pm

Alvast dank bij voorbaat!

Mvg,
Castel
Title: Re: circuit accelerometer - vibratie
Post by: nicoverduin on Apr 23, 2015, 09:48 pm
Als jij een accellero meter op de Arduino wil monteren, moet je waarschijnlijk een experimenteer shield kopen. Ik heb nog nooit een shield gezien (niet dat dat wat zegt) die een accelerometer heeft.
Motoren altijd via een diode en transistor gebruiken. Capje kan hoeft niet perse. En een weerstand in serie vanaf de PMW naar de basis. Iets van 470 ohm oid. Transistor afhankelijk van stroom motor. Is het er een die max iets van 50mA trekt, gewoon een BC547 of 2n3904 gebruiken.
PWM kun je gerust gebruiken voor de motor.

Title: Re: circuit accelerometer - vibratie
Post by: castel on Apr 23, 2015, 10:07 pm
Beste Nico,

hartelijk dank voor de snelle reactie.
Een breakout-board zoals dit denk ik toch dat makkelijk bruikbaar moet zijn: http://www.bitsandparts.eu/Sensor_-_Accelerometer-versnellingsmeter_3-voudig_digitaal_-_ADXL345_(Sensors)-p100192.html (http://www.bitsandparts.eu/Sensor_-_Accelerometer-versnellingsmeter_3-voudig_digitaal_-_ADXL345_(Sensors)-p100192.html)

Het trilmotortje is het volgende: http://www.bitsandparts.eu/Trilling-vibratie_motortje_10mm_rond_3-4,5V__(Motoren_and_Drivers)-p100364.html (http://www.bitsandparts.eu/Trilling-vibratie_motortje_10mm_rond_3-4,5V__(Motoren_and_Drivers)-p100364.html)
Ik denk niet dat dit boven 50mA trekt.

Momenteel heb ik een PN2222A NPN 40V / 1A Resistor en 1N4001 50V / 1A Diode. Zouden deze volstaan?
Wat bedoel je juist verder met de weerstand tussen basis en pwm van 470ohm?

Alvast bedankt,

mvg,
Castel
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Apr 23, 2015, 11:16 pm
Hoi castel, en welkom.

Ik zie dat het allemaal nieuw is voor je, en dat je er wat moeite mee hebt.
Dat zie ik omdat je de verschillende termen nog niet helemaal begrijpt.
De waarde van een weerstand word uitgedrukt in Ohm.
Dus als iemand het over 470 Ohm heeft, dan praat ie over het algemeen over een weerstand (natuurlijk gaat er nu iemand iets roepen over de uitzondering die de regel bevestigt).

Wat Nico voorstelde is dat je een weerstand van 470 Ohm aansluit tussen de PWM uitgang van jouw keuze en de basis (B aansluiting) van de 2222A transistor (niet resistor, das Engels voor weerstand).
Die site waar je dat motortje gevonden hebt, heeft het alleen over een spanning van 3 tot 4.5 volt, maar niet over de stroom (in Ampères) die het motortje graag lust.
Als dat tot zo'n 500 mA gaat, is die transistor waarschijnlijk wel voldoende.

Het breakout boardje is wel bruikbaar, maar je kunt het niet op je Arduino prikken en dan gebruiken.
Want de aansluitpinnen zitten in een andere volgorde als de pinnen van je Arduino.
En das dus ook wat Nico bedoelde.
Title: Re: circuit accelerometer - vibratie
Post by: castel on Apr 23, 2015, 11:25 pm
Hoi castel, en welkom.

Ik zie dat het allemaal nieuw is voor je, en dat je er wat moeite mee hebt.
Dat zie ik omdat je de verschillende termen nog niet helemaal begrijpt.
De waarde van een weerstand word uitgedrukt in Ohm.
Dus als iemand het over 470 Ohm heeft, dan praat ie over het algemeen over een weerstand (natuurlijk gaat er nu iemand iets roepen over de uitzondering die de regel bevestigt).

Wat Nico voorstelde is dat je een weerstand van 470 Ohm aansluit tussen de PWM uitgang van jouw keuze en de basis (B aansluiting) van de 2222A transistor (niet resistor, das Engels voor weerstand).
Die site waar je dat motortje gevonden hebt, heeft het alleen over een spanning van 3 tot 4.5 volt, maar niet over de stroom (in Ampères) die het motortje graag lust.
Als dat tot zo'n 500 mA gaat, is die transistor waarschijnlijk wel voldoende.

Het breakout boardje is wel bruikbaar, maar je kunt het niet op je Arduino prikken en dan gebruiken.
Want de aansluitpinnen zitten in een andere volgorde als de pinnen van je Arduino.
En das dus ook wat Nico bedoelde.

Bedankt MAS3!

Het is inderdaad nogal vrij nieuw voor mij en dus is het allemaal wat moeilijk maar via tutorials en fora kan ik wel mijn plan trekken!
Ziet u (of iemand anders) een mogelijkheid om een accelerometer aan te sluiten op een arduino op een vrij eenvoudige manier (beginner).
Voor de rest denk ik wel dat ik zowizo in staat moet zijn om de vibratie in orde te krijgen.

mvg
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Apr 23, 2015, 11:44 pm
Ja hoor castel, dat is zonder meer mogelijk.
Ik heb er hier eentje (zelfde chip) naast me liggen, een metertje van me vandaan.
Die is gekoppeld met een Arduino Uno die ook weer verbonden is met een I2C LCD display (2 regels van 16 karakters).
Op dat displaytje word steeds de waarde van de accelerometer weergegeven, meer gebeurt er daar niet (hij is nu even niet aangesloten).
Dan zie je dus die waarde continu veranderen als ie op een van de PC's hier ligt (die staat niet helemaal stil want er draait een ventilator en af en toe gaat de harde schijf ook wel wat tekeer).

Maar je moet hem dan dus met draadjes verbinden, want op je Arduino steken gaat 'm niet worden.
Hier heb ik m op een mini breadboardje zitten.
Das een handig dingetje waar je een aantal draadjes in kan steken en met elkaar verbind, dat speciaal voor dit soort experimentjes is bedoeld.

Voor dat experimentje heb ik ook een level converter gebruikt, die er voor zorgt dat de 5 volt signalen uit de Arduino niet meer zijn dat de 3 volt die de chip liever heeft.
Ik weet niet of de chip goed met 5 volt overweg kan, want had die converter toch liggen dus waarom dan niet gebruiken.
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Apr 24, 2015, 11:06 pm
Hoi castel.

Heb je PM net gelezen.
Ik snap dat je graag meer wil weten en me daarom die PM hebt gestuurd.
Maar in principe beantwoord ik zulke PMs niet, omdat ik er alleen degene die me die PM stuurt daarmee zou helpen.
En das nou juist niet de bedoeling van een forum.
Een forum biedt juist de mogelijkheid om publiekelijk iets te bespreken, zodat iemand anders die daarin ook geïnteresseerd is en ook wat van op kan steken.

Daarom heb ik dus veel liever dat je je vragen gewoon hier in het onderwerp stelt waar iemand ze dan kan beantwoorden.
Iemand betekent dus dat ik dat zou kunnen zijn, maar  net zo goed iemand anders die je vraag misschien wel eerder ziet, en/of denkt dat ie je ook van een passend antwoord kan voorzien.

De Arduino Uno heeft female pinnen, waar je dus een jumper kabeltje in steekt.
Het breadboard (die je al hebt liggen) heeft ook alleen maar gaatje waar je zo'n kabel in kunt steken.
Het boardje met de ADXL345 heeft gaatjes erin, en meestal worden zulke boardjes geleverd met een stripje pinnen die je er zelf aan kunt solderen of die er wellicht al aan zitten.
Op de foto van je leverancier staat het boardje met de pinnen er al ingestoken, maar nog niet gesoldeerd.
Dat hebben ze bewust zo gedaan, zodat je weet dat dat nog moet gebeuren, en je moet ze ook echt solderen omdat er anders maar een heel slecht en onbetrouwbare verbinding is.
Het boardje met de eraan gesoldeerde pinnen steek je dan (met de tekst voor de functie van de pinnen leesbaar) in je breadboardje.
En vervolgens verbind je de Arduino met wat van die jumper wires met het breadboardje.
VCC is de voedingsspanning, je moet even kijken of het ding op 5 of op 3 volt aangesloten moet worden (de Arduino kan het allebei leveren).
GND is de nul volt, die heeft de Arduino ook.
CS is verkeerd beschreven op de print.
Daar moet een streep overheen staan, of een / of een ! voor de tekst staan (dus /CS).
Die manier van noteren geeft aan dat het signaal actief is als het LOW is.
En dat signaal CS= Chip Select, geeft aan dat de data op de databus op dat moment voor die chip (of module) bedoeld is.

Ik heb de print aan I2C aangesloten.
Daarmee hoef je bovenstaande met de CS niet te doen, en spaar je een pin van je Uno uit.
Je sluit dan SCL aan op pin A5 van je Uno, en SDA op pin A4.
Het selecteren van de chip gebeurt bij I2C doormiddel van een adres dat met de data word meegestuurd.
Door de CS pin dan met VCC te verbinden is ie altijd HIGH en daarmee in de I2C stand.

Als je hier meer over wil weten kun je de datasheet van de chip downloaden via de link die je vind op de site van je leverancier.
Daar staat het helemaal in uitgelegd.

Ik weet niet meer precies waar ik de code vandaan gehaald heb om de ADXL345 uit te lezen, kan die code niet zo snel meer vinden.
Maar ongetwijfeld heb ik 'm hier via de zoekfunctie van het forum gevonden.
Ik zal van't weekend nog wel ff kijken of ik m nog terug kan vinden.

Title: Re: circuit accelerometer - vibratie
Post by: castel on Apr 25, 2015, 09:47 pm
Hartelijk dank MAS3
Ik stuurde je inderdaad een PM omdat ik dacht dat de ervaren mensen op dit forum geen boodschap hebben aan mijn infantiele arduino-vragen.
Ik ga het bekijken om het op de manier te doen dat u voorstelt. Is het solderen absoluut noodzakelijk om een basisopstelling te maken? Of kan ik het ook eerst testen door gewoon de pinnetjes er eventjes zo los in te steken? Ik bezit immers geen soldeerkit hier.

Voorts kan ik besluiten dat ik voor mijn initiele project nodig heb:
2 x vibratiemotortjes
2 x 2222A transistor (voor motorcircuit)
2 x N4001 50V / 1A Diode (voor motorcircuit)
1 x weerstand van ongeveer 570Ohm (voor de PMW)
breadboard
accelerometer
Uno
Jumepers
(eventueel een capacitor voor motorcircuit)

Lijkt dit realistisch of kijk ik iets over het hoofd?

Mvg,
Prettig weekend

Castel



Castel

Mvg
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Apr 25, 2015, 11:42 pm
Het kan best zo zijn dat er mensen zijn die zichzelf zo fantastisch vinden dat ze geen tijd nemen voor newbies.
Maar dat is geen reden jezelf en/of je vragen als kinderachtig te bestempelen.
Als je een vraag hebt, moet je daarop gewoon antwoord kunnen krijgen.
Dan is het wel goed om eerst even te kijken of het antwoord er niet al is, maar als het er niet is moet je m gewoon kunnen stellen zonder je te hoeven schamen voor die vragen.

Dus gewoon je vragen stellen !

Ja, het solderen van die pennen is echt noodzakelijk, anders krijg je nooit een stabiele, goede verbinding.
Dan ga je in je code op zoek naar fouten, terwijl de problemen door een slechte verbinding worden veroorzaakt.
Dus dat betekent dat er een soldeerbout met toebehoren mag aanrukken, of je dat ergens moet gaan (of laten) doen waar men er wel over beschikt.

De weerstand heb je 2 keer nodig, 1 voor elke transistor.
Je sluit elke transistor ook aan op een eigen PWM aansluiting, als je dat zo nog niet begrepen had.
Die weerstand van 570 Ohm gaat je nog wat hoofdbrekens opleveren.
De standaard waarden die daar op lijken zijn namelijk 470 en 560 Ohm.
Maar het zal vast een tiepvaud zijn, want eerder was er sprake van een andere waarde.
Die diode is fysiek wat groot met kunststof behuizing.
Voor dat doel kun je ook een 1n4148 nemen, die is een stuk kleiner met een glazen behuizing.
Je kunt hierop de streep voor de kathode wel iets lastiger onderscheiden.

Als je een condensator (capacitor in het Engels) wil gebruiken, moet je wel weten wat je daarmee gaat doen.
Condensatoren hebben veel toepassingen, en zijn er in vele uitvoeringen.
Het is wel van belang dat je voor de juiste combinatie kiest.

Verder mis ik nog een voeding.
Hoe ben je van plan het geheel van spanning te gaan voorzien ?
Title: Re: circuit accelerometer - vibratie
Post by: shooter on Apr 26, 2015, 08:51 am
zoek naar fritzing en begin maar eens met een schema, de software is ook plakwerk.
En vooral niet te moeilijk denken, het is allemaal vrij simpel.
voorbeelden genoeg op dit forum en website, en hulp is er ook nog.
Title: Re: circuit accelerometer - vibratie
Post by: castel on Apr 26, 2015, 11:44 am
Bedankt. Fritzing is inderdaad een handig programma om schema's te maken, bedankt.
Ik heb een opstelling gemaakt waarvan ik denk dat ze goed is met een accelerometer en voorlopig 1 vibratiemotortje.
Wat denken jullie hiervan? (bestand in Attach)


Title: Re: circuit accelerometer - vibratie
Post by: nicoverduin on Apr 26, 2015, 04:05 pm
Dat gaat wel werken hoor. Zelf gebruik ik die ADXL345 met I2C. Maar dat mag niet uitmaken.
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Apr 26, 2015, 05:18 pm
Als Nico het al bekeken heeft dan geloof ik ook dat het wel zal werken.
Maar ik heb toch wel een tipje voor je in verband met het maken van tekeningen.
In je Fritzing screenshot zie ik veel blauwe draden die kriskras door de tekening lopen.
Het is aan te raden om je draden zoveel mogelijk in rechte lijnen te tekenen, dat maakt het net wat overzichtelijker.
Verder is het gangbaar om de kleur rood voor VCC te gebruiken, en zwart voor GND.
Dat zijn twee belangrijke leidingen die het echt verdienen een eigen kleur te hebben.
Verder kun je je weerstand een waarde geven, waardoor de kleurenstreepjes erop correct zullen worden weergegeven.
De kleuren die er nu in staan representeren 220 Ohm, de waarde die meestal word toegepast om een LED in een 5 volt systeem te gebruiken.
470 Ohm zou zijn geel, paars, bruin en 560 is dan groen, blauw, bruin.

Zijn allemaal details, maar als je een iets uitgebreidere tekening gaat maken zul je er veel nut bij hebben.
Title: Re: circuit accelerometer - vibratie
Post by: castel on Apr 29, 2015, 11:47 pm
Het kan best zo zijn dat er mensen zijn die zichzelf zo fantastisch vinden dat ze geen tijd nemen voor newbies.
Maar dat is geen reden jezelf en/of je vragen als kinderachtig te bestempelen.
Als je een vraag hebt, moet je daarop gewoon antwoord kunnen krijgen.
Dan is het wel goed om eerst even te kijken of het antwoord er niet al is, maar als het er niet is moet je m gewoon kunnen stellen zonder je te hoeven schamen voor die vragen.

Dus gewoon je vragen stellen !

Ja, het solderen van die pennen is echt noodzakelijk, anders krijg je nooit een stabiele, goede verbinding.
Dan ga je in je code op zoek naar fouten, terwijl de problemen door een slechte verbinding worden veroorzaakt.
Dus dat betekent dat er een soldeerbout met toebehoren mag aanrukken, of je dat ergens moet gaan (of laten) doen waar men er wel over beschikt.

De weerstand heb je 2 keer nodig, 1 voor elke transistor.
Je sluit elke transistor ook aan op een eigen PWM aansluiting, als je dat zo nog niet begrepen had.
Die weerstand van 570 Ohm gaat je nog wat hoofdbrekens opleveren.
De standaard waarden die daar op lijken zijn namelijk 470 en 560 Ohm.
Maar het zal vast een tiepvaud zijn, want eerder was er sprake van een andere waarde.
Die diode is fysiek wat groot met kunststof behuizing.
Voor dat doel kun je ook een 1n4148 nemen, die is een stuk kleiner met een glazen behuizing.
Je kunt hierop de streep voor de kathode wel iets lastiger onderscheiden.

Als je een condensator (capacitor in het Engels) wil gebruiken, moet je wel weten wat je daarmee gaat doen.
Condensatoren hebben veel toepassingen, en zijn er in vele uitvoeringen.
Het is wel van belang dat je voor de juiste combinatie kiest.

Verder mis ik nog een voeding.
Hoe ben je van plan het geheel van spanning te gaan voorzien ?

Ik zou het geheel van spanning willen voorzien door een batterijvoeding die ik dan op de arduino aansluit (Ipv de usb).
Verder had ik nog een vraagje: wat betekt I2C juist?
In verband met het programmeren: ik zou dus vanaf een bepaalde hoek een vibratie willen verkrijgen door gebruik te maken van pwm. Dit moet een alles of niets verhaal worden. Ik bedoel hier dus mee dat de vibratie altijd op dezelfz sterkte moet zijn en niet bij een grotere hoek bijvoorbeeld harder moet vibreren.
Hebben jullie hiervoor nog tips?

Alvast bedankt voor de leuke en nuttige tips. Mvg,
Castel
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Apr 30, 2015, 12:17 am
I2C is een "afkorting" voor IIC, wat weer een afkroting is voor Inter Integrated circuit Communication.
Het is een voorbeeld van Nederlandse vindingrijkheid, want een van de ontwikkelingen van Philips in de jaren 70.
Philips had ook het patent op het systeem en de naam, maar dat is een paar jaar geleden meegegaan naar NXP)
Het diende toen om op relatief eenvoudige wijze chips met elkaar te laten "praten".
Voor I2C waren er veel verbindingen nodig om dit voor mekaar te krijgen.
Een geheugenchip bijvoorbeeld had toen 8 bits adres en 8 bit databits plus wat stuursignalen en dus minimaal een stuk of 18 aansluitingen nodig.
Met I2C werd dat beperkt tot 2.

Omdat Philips / NXP het patent en de rechten op de naam hebben, is hetzelfde systeem ook wel bekend als 2 draad, oftewel TWI (Two Wire Interface).

Tot zover de wiki (<= hint).

De wire library is de Arduino ondersteuning hiervoor.
De Arduino heeft hier een hardwarematige ondersteuning voor, de Uno op pennen A5 en A4.
Als je dat gaat gebruiken betekent dat dus dat die pennen niet meer beschikbaar zijn voor het verwerken van analoge ingangssignalen.

Title: Re: circuit accelerometer - vibratie
Post by: castel on Apr 30, 2015, 12:54 pm
Voor de geinteresseerden: ik heb een accelerometer gevonden waarbij de pinnen reeds gesoldeerd zijn:

http://www.bitsandparts.eu/Sensor_-_Accelerometer-versnellingsmeter_3-voudig_analoog_-_MMA7361_(Sensors)-p100191.html
 (http://www.bitsandparts.eu/Sensor_-_Accelerometer-versnellingsmeter_3-voudig_analoog_-_MMA7361_(Sensors)-p100191.html)
Met een spanningsregelaar zodat deze automatisch op de 5V kan worden aangesloten.
Ik merk wel op dat dit een analoge input heeft. Dan zou ik nog formules moeten gebruiken om de waarden om te zetten in hoekuitwijkingen?
Title: Re: circuit accelerometer - vibratie
Post by: castel on May 09, 2015, 01:58 pm
Beste Arduinoleden.
Weer een beetje verder gevorderd in de wereld van Arduino en tijd om deze topic nog eens van onder het stof te halen.
Ik vraag mij af wat jullie van volgend circuit denken:
De accelerometer met 2 vibratiemotortjes aangesloten op verschillende pins.

Alvast dank om dit eventjes te bekijken.
(afbeelding in bijlage)

Mvg,
Castel
Title: Re: circuit accelerometer - vibratie
Post by: Jantje on May 09, 2015, 03:29 pm
het lijkt me dat dta niet gaat werken want rood een zwart is verbonden met elkaar op de breadboard (helemaal links)
Hoeveel verbruiken je motoren?
Jantje
Title: Re: circuit accelerometer - vibratie
Post by: castel on May 09, 2015, 04:06 pm
het lijkt me dat dta niet gaat werken want rood een zwart is verbonden met elkaar op de breadboard (helemaal links)
Hoeveel verbruiken je motoren?
Jantje
Die zware moet inderdaad ook gewoon naar de GND. Qua vebruik weet ik eigenlijk niet. 3.4-5V is de enige specificatie die ik weet. Ik verwacht nu wel niet dat ze enorm veel Ampere trekken.
Title: Re: circuit accelerometer - vibratie
Post by: Jantje on May 09, 2015, 08:17 pm
Ben je zeker dat je zo de x y z waarden kan uitlezen?
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on May 09, 2015, 11:57 pm
Het is heel belangrijk dat je alles heel secuur doet.
Dus als je een tekening maakt, dan dubbel controleren.
Dan even laten liggen (er een nachtje over slapen) en dan nog eens controleren.
Of je vraagt iemand om even te kijken, wat je dus in feite nu gedaan hebt.

Het werkt niet, het werkt niet en het werkt niet als je het mij vraagt.

Daarvoor heb ik naar de beschrijving op de site waarnaar je linkt, het schemaatje dat daar ook staat, en jouw screenshot gekeken.

Het werkt niet omdat je niet de juiste pinnen van de Arduino gekozen hebt.
Het werkt niet omdat je schijnbaar de pinnen van de chip, in plaats van de module hebt gekozen.
Het werkt niet omdat je niet de juiste pinnen van de module gekozen hebt als je wel de module zou bedoelen.

De Arduino heeft analoge ingangen die van A0 tot A5 gaan, dat zijn er dus 6 in totaal.
Die ingangen kunnen ook digitaal gebruikt worden, zelf ook als uitgang.
Dan zijn er nog digitale uit en ingangen, die van D0 tot D13 gaan, maar daar is de D niet benoemd.
Sommige kunnen hardwarematig een PWM waarde uitsturen, die zijn op je bordje gemarkeerd met een ~ tilde .
Soms vergist men zich en noemt men dat analoge uitgangen, maar dat zijn het niet.
Deze mogelijkheden moet je wel begrijpen, anders zal het werken erg moeizaam worden.
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on May 10, 2015, 12:48 am
Ow, nog iets.

Die motoren gaan niet draaien hoor.
Zodra je de transistor open zet gaat er niet voldoende stroom door de motor, maar bijna alles gaat door de betreffende diode.

Als je de diode omdraait maak je meer kans.
Title: Re: circuit accelerometer - vibratie
Post by: castel on May 13, 2015, 03:36 pm
Bedankt allemaal voor jullie feedback. Door jullie wijze woorden is het mij gelukt om de schakeling in mekaar te knutselen en aan de praat te krijgen! Nu zit ik nog slechts met één vraagje: wat is de gemakkelijkste manier om de uiteinde van het motortje te solderen? Kan dit gewoon op een header pin of is dit niet mogelijk? De uiteinden zien er als volgt uit (zie afbeelding en bijlage) en past dus niet in een breadboard.

mvg
Title: Re: circuit accelerometer - vibratie
Post by: nicoverduin on May 13, 2015, 06:04 pm
Als je die draadjes bedoeld.... Er zijn losse header pinnen en houders te koop op o.a. ebay. 't is een beetje een vraag waar je het op wil aansluiten. Er zijn ook 0.1" schroef klemmen te koop. En als het de bedoeling is dat het in een apparaat komt dat in principe nooit meer open hoeft, moet je jezelf afvragen of het de kosten wel waard is om uberhaupt pinnen ed. te gebruiken en niet gelijk gewoon solderen.
Title: Re: circuit accelerometer - vibratie
Post by: castel on May 14, 2015, 02:20 pm
Bedankt voor de talrijke nuttige reacties.
Na een beetje gespeeld te hebben met code is het me gelukt om de accelerometer naar mijn wensen te calibreren.

Nu zit ik nog met één vraagje. Indien de accelerometer een bepaalde waarde bereikt (uitwijking) moet de led oplichten. Normaal gezien doe ik dit gewoon met de analogValue die binnenkomt langs de Sensor. Maar omdat deze nu aangepast zijn en omgezet zijn kan ik dit niet gebruiken

Ik weet dat je dit normaliter doet met volgende code in de voide loop ():

if (uitwijking >= 15){
 digitalWrite(led1, HIGH);
alse {
 digitalWrite(led1, LOW);


Ik weet enkel niet welke variabele ik bij "uitwijking" moet zetten. Ik krijg steeds fouten als ik wat probeer. Omdat de analoge waarden die ik meet zowizo boven de 15 zitten. Maar degene die op de seriële monitor geprint worden niet omdat deze omgevormd zijn.
Hebben jullie hiervoor een oplossing?
De code staat hier onder


Code: [Select]
const static boolean GFORCE = true;
const static boolean METERS = false;


byte _sleepPin= 4;
byte _GS= 5;
byte _xpin= A0;
byte _ypin = A1;


int _gc = 92;//gravity constant (inverted for proper sinage)
int _0x = 660; //defaults to read values
int _0y = 677; //defaults to reasonable values
boolean _calibrated=false;


int led1 = 10;


void setup()
{
Serial.begin(9600);
begin();//runs setup
calibrate();
pinMode(10, OUTPUT);
}

void loop()
{
delay(3000); //Delay for readability


Serial.println();
Serial.println("In Meters Per Second-Squared:");
readMx();
readMy();


}
void begin()
{
pinMode(_sleepPin,OUTPUT);//output mode
pinMode(_GS,OUTPUT);//output mode
pinMode(_xpin, INPUT);//input mode
pinMode(_ypin, INPUT);//input mode


digitalWrite(_GS,LOW);//sets GS mode
digitalWrite(_sleepPin, HIGH);//turns off sleep mode and activates device
digitalWrite(_xpin, HIGH);//turn on pull up resistor
digitalWrite(_ypin, HIGH);//turn on pull up resistor

}


void calibrate()
{
Serial.println("Please place device right-side up on a flat surface.");
delay(3000);//give user two seconds to comply.
Serial.println("Calibrating");


_0x = readAverage(_xpin, 10);
Serial.print("X Axis Calibrated:"); Serial.println(_0x);
_0y = readAverage(_ypin, 10);
Serial.print("Y Axis Calibrated:"); Serial.println(_0y);

_calibrated = true;
}
int readAverage(int pin, int samples)
{
long readings = 0;

for(int i = 0; i < samples; i++)
{
readings += analogRead(pin);
}

return (readings/samples);
}

float convert(float myReading, float my0G)
{
return convert(myReading, my0G, GFORCE);//defaults to G-Forces
}

float convert(float myReading, float my0G, bool myUnits)
{
float myResult=((my0G-myReading)/(_gc));
if(myUnits)
return myResult; //G-Forces
else
return (myResult * 9.80665 * 10);


//converts to m/s^2 using conventional value for gravity.
//if you are on a different planet you may need to use a
//value for your conversions.
}

void readMx()
{
Serial.print("X Reading: ");
Serial.println(convert(analogRead(_xpin), _0x, METERS));
}

void readMy()
{
Serial.print("Y Reading: ");
Serial.println(convert(analogRead(_ypin), _0y, METERS));
}
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on May 14, 2015, 04:18 pm
Vermoedelijk mis ik nog wat programmeer ervaring, maar:

Ik zie nergens een verwijzing naar uitwijking staan in de code.
Ik zie ook nergens iets staan waar je de waarde van je accelerometer binnenhaalt om te verwerken.
Ik zie wel dat je de waardes naar serial stuurt.
Title: Re: circuit accelerometer - vibratie
Post by: castel on May 14, 2015, 04:49 pm
Vermoedelijk mis ik nog wat programmeer ervaring, maar:

Ik zie nergens een verwijzing naar uitwijking staan in de code.
Ik zie ook nergens iets staan waar je de waarde van je accelerometer binnenhaalt om te verwerken.
Ik zie wel dat je de waardes naar serial stuurt.

Ja ik zou graag werken met de waarden die geprint worden op de seriele monitor maar ik vind de oplossing niet

Mvg
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on May 14, 2015, 05:14 pm
Je haalt die waarden binnen in een functie.
De waardes die je daar binnenhaalt, zijn alleen geldig binnen die functie.
Daarom lukt de serial print daar dus wel.
Ergens anders zijn ze onbekend.
En zelfs als je de volgende keer weer terugkeert naar die functie zijn ze alweer vergeten en worden ze opnieuw aangemaakt.
Dat word dus uitzoeken hoe je waardes vanuit een functie kunt overdragen naar elders in je sketch.
Er word hier in het Engels (http://www.arduino.cc/en/Reference/Scope) wat over variabele scope ("blikveld") verteld, ook over het nut van de verschillende varianten.
Title: Re: circuit accelerometer - vibratie
Post by: castel on May 14, 2015, 10:00 pm
Voor de geïnteresseerden, het is wel degelijk gelukt.

Gewoon de variabele (convert(analogRead(_xpin), _0x, METERS) in de void loop () gebruiken. Dit blijkt te werken
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on May 14, 2015, 10:39 pm
Gefeliciteerd.

Daarmee is je code vermoedelijk wel behoorlijk veranderd.
Wil je die uiteindelijke code ook plaatsen ter leering ende vermaeck ?
Title: Re: circuit accelerometer - vibratie
Post by: castel on May 16, 2015, 01:19 pm
Het enige wat ik heb moeten aanmaken in de void loop() is het volgende:

Code: [Select]
  if ((convert(analogRead(_ypin), _0y, METERS) >= Trigger)){   
    digitalWrite(led1, HIGH);
 
      }
 
   else {
 
    digitalWrite(led1, LOW);
      }

 
uiteraard moet je de variabelen int Trigger bovenaan nog een waarde geven.


Title: Re: circuit accelerometer - vibratie
Post by: castel on Jun 09, 2015, 11:20 pm
Ik heb een zeer raar probleem.
ik heb de schakeling gebouwd. En als de waarde overschreden wordt trillen de motoren.
om de accelero te calibreren gebruik ik een IR reveiver met remote.

Ni het probleem: ik kan de accelero perfect kalibreren als er geen motor trilt. Als motor1 trilt kan ik de accelero ook kalibreren maar als motor2 trilt lukt het mij niet om te kalibreren...
ik moet wel zeggen dat het 2 verschillende motoren zijn. Zou het kunnen dat ik de stroom door deze motor naar beneden moet halen met een sterkere weerstand?
Ik heb al zoveel proberen veranderen aan mijn code maar hier ligt het probleem niet denk ik.

Heeft iemand een idee?
Alvast bedankt,
Castel
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Jun 09, 2015, 11:37 pm
Sorry, ik weet niet of ik nu naar iets vraag dat al gepost is.
Maar hoe heb je de motoren precies aangesloten ?

Ik vermoed dat je 2e motor een stoorsignaal genereert.
Dat kun je voorkomen met een of twee (een grotere elco van 10 uF ofzo en een kleinere in de orde van 100 nF) op de juiste plaats.
Om je te adviseren over de beste plaats is dan een schemaatje van je huidige opzet nodig.
Title: Re: circuit accelerometer - vibratie
Post by: castel on Jun 10, 2015, 11:48 am
In bijlage vindt u mijn schema.
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Jun 11, 2015, 12:37 am
Ah, zoiets heb ik al eens voorbij zien komen.

Als je nog twijfelt of het aan je code kan liggen, verwissel  dan de draden aan pinnen D6 en D9 eens.
Wanneer je dan hetzelfde probleem hebt maar nu met motor 1, dan ligt het toch aan je code.
Draait het probleem ook om, dan ligt het aan de hardware.


Breadboard / Fritzing tip:

Aan de randen van je breadboard heb je gaten die in de lengte doorverbonden zijn.
Die zijn om de voeding te maken en dat heb je ook zo gedaan.
Maar er staan ook gekleurde strepen naast de betreffende gaatjes.
Je moet het zelf weten, maar de rode kleur is dan bedoeld om VCC (oftewel "de plus") weer te geven, en de blauwe om GND, de "min" weer te geven.
Bij bepaalde, wat langere breadbords, kun je ook tegenkomen dat de rode en de blauwe lijn in het midden zijn onderbroken.
Dat betekent dat de elektrische doorverbinding daar ook onderbroken is, en dat is een regelrechte valkuil.
Title: Re: circuit accelerometer - vibratie
Post by: castel on Jun 11, 2015, 09:24 am
Bedankt voor de tip!

Inderdaad, ik heb deze al omgewisseld en nog steeds dezelfde motor had het probleem!
Na enig opzoekwerk denk ik dat ik het misschien kan oplossen met een capacitor parallel aan de diode te schakelen?
Title: Re: circuit accelerometer - vibratie
Post by: castel on Jun 11, 2015, 12:29 pm
Update: Ik heb een in capacitor van 10µf parallel aan de diode geschakeld en het werkt nu!
Bedankt voor de tip MAS3
Title: Re: circuit accelerometer - vibratie
Post by: MAS3 on Jun 25, 2015, 07:12 pm
Beste castel.

Aangezien het om een ander project en andere hardware gaat, lijkt het me een bijzonder goed idee om hiervoor een nieuw onderwerp te starten.
Anders is er een grote kans op verwarring, en anderen die wellicht hebben afgehaakt in deze thread gaan hier dan ook niet meer kijken.