Acties:
  • 0 Henk 'm!

  • webdavid
  • Registratie: Mei 2014
  • Laatst online: 18-09 09:04
Oke bedankt voor de reacties!

Ik heb dit even bekeken: http://www.ebay.nl/itm/Sm...es_ET&hash=item3cee48c8f0

Deze lijkt me best handig. En dan nog een arduino en een paar lichtsensoren.
Heb ik ook nog een motor controller nodig?

daviddebestnl @ tweakers2 clash of clans || i5 4690 ~ gtx 750 ti


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Als je niet zoveel geld hebt zou ik je aanraden wereldwijd te zoeken, kan aardig schelen mits je enkele weken verzendtijd kunt accepteren:
http://www.ebay.nl/sch/i.html?_sop=15&LH_BIN=1&_from=R40|R40&_sacat=0&_nkw=smart+robot+car+chassis&rt=nc&LH_PrefLoc=2

[ Voor 20% gewijzigd door mcDavid op 23-12-2014 15:53 ]


Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
"een autotje maken die een lijn kan volgen"

Kijk eens naar sensors zoals de CNY70 en TCRT5000. Beide in grote lijnen hetzelfde, alleen andere behuizing. Als je deze aan de onderkant van het autootje plaatst, en de ondergrond een duidelijk contrast/kleurverschil met de lijnen heeft, dan kun je daarmee denk ik wel lijnen volgen. Daarbij is er voor beide sensors genoeg documentatie en voorbeeldcode beschikbaar, zij het voor andere projecten. Ik heb bijvoorbeeld een CNY70 die de markering op de ronddraaiende schijf in de elektriciteitsmeter detecteert.




Woohoo, de watermeter lijkt ook een ronddraaiende magneet (of iig iets magnetisch) te hebben :D De waardes konden beter, maar er is duidelijk een patroon te zien :)

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
@Raven: Excel doet inderdaad niet aan 3D. Daarvoor gebruik ik gnuPlot. Freeware en je kan er bijzonder veel mee. Indien nodig kan ik je wel ff op weg helpen.

Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
Net een lange tijd voor de gas en watermeter gezeten :P

Het lijkt erop dat ik mbv het digitale kompas elke 0.002m3 een puls kan laten vastleggen van de gasmeter, al lijkt het de ene keer iets meer en de andere keer iets minder dan 0.002m3 te zijn.

Bij de watermeter, met 4 getallen achter de komma op de meter, lijkt er met de huidige opstelling een puls vastgelegd te kunnen worden als de 0.0002m3 en 0.0005m3 in beeld staan, oftewel elke halve liter.

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Ik wil met m'n arduino de status van een led nagaan.
De led kan aan of uit zijn, maar kan ook snel of traag knipperen.
Door bij de verandering millis() te printen kwam ik erachter dat snel knipperen ongeveer 516 a 564ms is en traag 775 a 826ms.

Ik krijg echter geen goed resultaat met onderstaande code...weet er iemand wat ik misdoe?
Ik krijg dus soms een toestand 2 als het 3 moet zijn en omgekeerd....

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
schuifCurrentState = digitalRead(schuifpoortIN);
unsigned long currentTimeSchuif = millis();
  
if (schuifCurrentState != schuifLastState){ // de status is aangepast
    SchuifTimeOfLastButtonEvent = currentTimeSchuif;
}
  //0: staat volledig dicht, 1: staat in pauze of volledig open, 2: gaat open, 3: gaat dicht
if (currentTimeSchuif - SchuifTimeOfLastButtonEvent > 1500){// meer dan 1.5  seconden geen verandering, dus het zal niet knipperen, dus AAN of UIT
   if (schuifCurrentState == LOW){ //het is omgekeerd, door de pull-up, dus ze is laag als er signaal is
      schuif_status = 1; //de led brand
   } else if (schuifCurrentState == HIGH) { 
      schuif_status = 0; //de led brand niet
    } else { //er klopt iets niet...
      schuif_status = 5; //er is een probleem
    }
} else if (currentTimeSchuif - SchuifTimeOfLastButtonEvent > 650){// meer dan 0.65 seconde geen verandering en minder dan 1.5 seconden 
    schuif_status = 2; //de led knippert traag
} else { // het was minder dan 0.65 seconde sinds een verandering dus het zal snel knipperen
    schuif_status = 3; //de led knippert snel
}
schuifLastState = schuifCurrentState;

Acties:
  • 0 Henk 'm!

  • klaboem
  • Registratie: April 2010
  • Laatst online: 22-08 11:39
oeps...

[ Voor 98% gewijzigd door klaboem op 16-01-2015 14:57 ]


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Promy schreef op vrijdag 16 januari 2015 @ 14:23:
Ik wil met m'n arduino de status van een led nagaan.
De led kan aan of uit zijn, maar kan ook snel of traag knipperen.
Door bij de verandering millis() te printen kwam ik erachter dat snel knipperen ongeveer 516 a 564ms is en traag 775 a 826ms.

Ik krijg echter geen goed resultaat met onderstaande code...weet er iemand wat ik misdoe?
Ik krijg dus soms een toestand 2 als het 3 moet zijn en omgekeerd....

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
schuifCurrentState = digitalRead(schuifpoortIN);
unsigned long currentTimeSchuif = millis();
  
if (schuifCurrentState != schuifLastState){ // de status is aangepast
    SchuifTimeOfLastButtonEvent = currentTimeSchuif;
}
  //0: staat volledig dicht, 1: staat in pauze of volledig open, 2: gaat open, 3: gaat dicht
if (currentTimeSchuif - SchuifTimeOfLastButtonEvent > 1500){// meer dan 1.5  seconden geen verandering, dus het zal niet knipperen, dus AAN of UIT
   if (schuifCurrentState == LOW){ //het is omgekeerd, door de pull-up, dus ze is laag als er signaal is
      schuif_status = 1; //de led brand
   } else if (schuifCurrentState == HIGH) { 
      schuif_status = 0; //de led brand niet
    } else { //er klopt iets niet...
      schuif_status = 5; //er is een probleem
    }
} else if (currentTimeSchuif - SchuifTimeOfLastButtonEvent > 650){// meer dan 0.65 seconde geen verandering en minder dan 1.5 seconden 
    schuif_status = 2; //de led knippert traag
} else { // het was minder dan 0.65 seconde sinds een verandering dus het zal snel knipperen
    schuif_status = 3; //de led knippert snel
}
schuifLastState = schuifCurrentState;
mogelijk dat je door de timing een pulsje mist. Een ding als deze zou ik zelf toch met een pinchange interrupt aanpakken.

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
De arduino nano is wat overladen (checkt nog wat extra zaken), waardoor ik geen interrupts meer vrij heb.
Ik was ondertussen nog wat verder zitten zoeken (het helpt door de zaken eens uit te tikken als vraag :) )
en ik heb een oplossing (en mogelijk probleem) gevonden...
Volgens mij ligt het probleem in het feit dat ik telkens de currentTimeSchuif ververs en die dan gebruik om te weten hoe lang het geleden was dat de vorige change was. De uitkomst is dus afhankelijk van de loop.
Nu heb ik een extra variabele gemaakt die in de f (schuifCurrentState != schuifLastState) zit en die het verschil bevat. Dit is dus altijd de volledige tijd tussen pulsveranderingen.
Die ga ik dan nakijken of het groter of kleiner dan 650 is en zo werkt het wel telkens goed ! :9

Acties:
  • 0 Henk 'm!

  • Ploink
  • Registratie: April 2002
  • Laatst online: 21-08 13:05
Promy schreef op vrijdag 16 januari 2015 @ 14:23:
Ik wil met m'n arduino de status van een led nagaan.
De led kan aan of uit zijn, maar kan ook snel of traag knipperen.
Door bij de verandering millis() te printen kwam ik erachter dat snel knipperen ongeveer 516 a 564ms is en traag 775 a 826ms.

Ik krijg echter geen goed resultaat met onderstaande code...weet er iemand wat ik misdoe?
Ik krijg dus soms een toestand 2 als het 3 moet zijn en omgekeerd....
Een code=c maakt het iets leesbaarder.
De tweede IF staat buiten de eerste, dus de tijd sinds de laatste verandering is onvoorspelbaar maar je hoeft alleen te testen na een status update, dus beter binnen de eerste IF
"SchuifTimeOfLastButtonEvent = currentTimeSchuif;" heb ik naar het eind verplaatst. Eerst testen, dan nieuwe status ;)
edit: millis() in IF block gezet, is ook alleen nodig na pin change, scheelt weer cpu tijd.
edit2: Oeps, dit werkt alleen bij een pin change, dus detectie van continu aan of uit lukt dan niet :F

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
schuifCurrentState = digitalRead(schuifpoortIN);
if (schuifCurrentState != schuifLastState)
{
    unsigned long currentTimeSchuif = millis();
    // de status is aangepast
    
    //0: staat volledig dicht, 1: staat in pauze of volledig open, 2: gaat open, 3: gaat dicht
    if (currentTimeSchuif - SchuifTimeOfLastButtonEvent > 1500)
    {
        // meer dan 1.5 seconden geen verandering, dus het zal niet knipperen, dus AAN of UIT
        if (schuifCurrentState == LOW)
        {
            //het is omgekeerd, door de pull-up, dus ze is laag als er signaal is
            schuif_status = 1;
            //de led brand
        }
        else if (schuifCurrentState == HIGH)
        {
            schuif_status = 0;
            //de led brand niet
        }
        else
        {
            //er klopt iets niet...
            schuif_status = 5;
            //er is een probleem
        }
    }
    else if (currentTimeSchuif - SchuifTimeOfLastButtonEvent > 650)
    {
        // meer dan 0.65 seconde geen verandering en minder dan 1.5 seconden
        schuif_status = 2;
        //de led knippert traag
    }
    else
    {
        // het was minder dan 0.65 seconde sinds een verandering dus het zal snel knipperen
        schuif_status = 3;
        //de led knippert snel
    }
    schuifLastState = schuifCurrentState;
    SchuifTimeOfLastButtonEvent = currentTimeSchuif;
}

[ Voor 8% gewijzigd door Ploink op 16-01-2015 15:35 ]


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
@Ploink: die code =c is inderddad een goeie aanpassing!
Ik had het ondertussen al iets anders aangepast.(zie mijn reactie boven) Volgens mij zal jouw oplossing niet 100% werken omdat hij niet meer kan zie of het gestopt is met veranderen? (omdat de >1500 binnen een if die eist dat er verandering is staat?


Een 2e vraagje die ik nog had: Diezelfde arduino leest en zet ook de status van m'n verluchtingsgroep (renson invisivent). Ik sluit aan cfr beschreven in deze link
Aan de arduino is een opto (4n25) aangesloten. Deze opto verbind de gnd van het toestel met de input van het toestel bij activering. (de input van het toestel is dus laag actief)

Nu werkt het wel, maar moet ik de opto veel langer aanzetten om een signaal te krijgen: de handleiding zegt dat er minder dan 5seconden gedrukt moet worden. Op de knoppen die naast het toestel staan, lukt dat door gewoon te drukken (dus 1 seconde ofzo).
Via de arduino moet ik echter 6 seconden doen, anders werkt het niet.

In het gelinkt document staat wel iets over de afstand klein houden (ifv ground). De kabelafstand (cat5e) is ongeveer 15 a 18m (enkele weg). Kan dit het probleem veroorzaken?
Zou het verplaatsen van de opo van bij de arduino naar bij de verluchtingsbox het probleem oplossen (dus de lange kabel tussen de arduino en de 4n25?)

Acties:
  • 0 Henk 'm!

Verwijderd

waarom moet een simpele breadboardvoeding 13 x duurder zijn ?

Afbeeldingslocatie: http://s11.postimg.org/m6whvbnhv/bbvoeding.jpg


0.86 eurocent incl. verzenden of 11.10 'in de aanbieding' incl. verzenden.. |:(

[ Voor 33% gewijzigd door Verwijderd op 16-01-2015 17:39 ]


Acties:
  • 0 Henk 'm!

  • Frozen
  • Registratie: Oktober 2010
  • Laatst online: 25-08 16:09

Frozen

2e Reviewer van het Jaar

Verwijderd schreef op vrijdag 16 januari 2015 @ 17:34:
waarom moet een simpele breadboardvoeding 13 x duurder zijn ?

[afbeelding]


0.86 eurocent incl. verzenden of 11.10 'in de aanbieding' incl. verzenden.. |:(
Ik heb die ook besteld en hij is binnen. Ik heb hem alleen niet getest, duurde wel 30 dagen voordat ik hem binnen had.

[ Voor 3% gewijzigd door Frozen op 16-01-2015 19:35 ]

Voeg me gewoon toe op LinkedIn, iedereen is welkom!


Acties:
  • 0 Henk 'm!

  • Mars Warrior
  • Registratie: Oktober 2003
  • Laatst online: 17-09 18:48

Mars Warrior

Earth, the final frontier

Verwijderd schreef op vrijdag 16 januari 2015 @ 17:34:
waarom moet een simpele breadboardvoeding 13 x duurder zijn ?
Misschien omdat het 13x sneller bij je in de brievenbus ligt >:)

Material 3 Thema's voor HA | Swiss Army Knife custom card voor HA | AmoebeLabs


Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Ik heb er daar ook 2 van, bij 1 ook al de cap vervangen omdat iemand niet goed naar de polariteit had gekeken :+

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Ik zit nu al een tijdje te klooien met een vergelijking die op een of andere manier niet werkt. Ik heb de volgende voorbeeldcode:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <LiquidCrystal_I2C.h>
#include <Wire.h>;

LiquidCrystal_I2C lcd(0x27, 20, 4);

float start        = 0.010000;
float target       = 0.100000;
float stepChange   = 0.010000;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  lcd.init();
  lcd.clear();
  lcd.backlight();
  
}

void loop() {
  if (start != target){
    lcd.clear();
    lcd.print(start);
    start+=stepChange;
  }
  delay(100);
}


Als ik kijk naar de code zou ik verwachten dat start wordt opgehoogd met 0.01 totdat start 0.10 is. Bij 0.10 zou het dus in principe moeten stoppen maar de code loopt vrolijk door...

Suggesties? Ik had zelf al gezocht en een topic gevonden ergens waarbij iemand de float 2.7 vergelijk met 2.7 (wat een double bleek) te zijn. Blijkbaar is de double preciezer dan de float en zou daar een verschil vandaan komen maar in mijn geval gebruik ik expliciet floats voor zowel start, target als stepChange.

Edit: Ik heb zojuist alle floats als double's gedefinieerd maar dat maakt ook geen verschil.

[ Voor 4% gewijzigd door C.44 op 19-01-2015 11:59 ]

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
"start != target", oftewel start is niet gelijk aan target en kan dus kleiner én groter zijn (wat het doorlopen verklaart) maar niet gelijk aan. Volgens mij moet die != == zijn.
edit: wacht, dat klopt ook niet. Ff denken.
edit2: <= , kleiner of gelijk aan.


Daarnaast heb ik mijn twijfels over "start+=stepChange;", hoort dat niet "start=start+stepChange;" te zijn?

[ Voor 30% gewijzigd door Raven op 19-01-2015 12:24 ]

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Dat is hetzelfde.

Probleem is dat er floats worden gebruikt, en die hebben altijd afrondingsfouten. Oftewel in de praktijk is target 0.1000000032, en start dan 0.0999999976. En die zijn niet aan elkaar gelijk.

start <= target moet inderdaad wel goed werken. (Dan alsnog kan hij eentje meer/minder lopen dan wat je denkt, maar hij stopt wel. start <= target - stepChange / 2 zorgt ervoor dat je precies weet hoe ver hij komt).

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
wat je ook kunt doen is de boel afronden. Stel je rond af op 3 decimalen, maak het getal 1000 keer groter en kap het af als integer:

code:
1
2
3
4
5
6
7
int valueInt = start *1000;
int targetInt = target * 1000;
if(targetInt == valueInt) { ....

of ineens

if((int)(value*1000) == (int)(target*1000)) { ...

bij de tweede moet je wel opletten met de plaatsing van de haakjes, anders wordt het eerst afgekapt en dan pas met 1000 vermenigvuldigd. Met integers rekenen is veel sneller dan floats ook trouwens.

En x+=2 is kort voor x=x+2, en x++ is weer gelijk aan x+=1 allemaal standaard C

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Kan beter in integers werken, gewoon in het meervoud bereken van je getal.


2.005 bereken je dan gewoon als 2005, meestal kan je floats helemaal vermijden. bijv. weergaven van float op display kan prima in twee integers met punt ertussen,

2005 kan je eerst delen door 1000 om 2 te krijgen die voor de punt moet, vervolgens gebruik je die uitkomst voor de volgende soms, dit geval is dat 2.

2005 / 1000 = 2
2005 - (2 * 1000) = 5

Nu heb je alle integers die je nodig hebt om je getal weer te geven zonder float te gebruiken.

Edit/
RobV schreef op maandag 19 januari 2015 @ 13:30:
wat je ook kunt doen is de boel afronden. Stel je rond af op 3 decimalen, maak het getal 1000 keer groter en kap het af als integer:

code:
1
2
3
4
5
6
7
int valueInt = start *1000;
int targetInt = target * 1000;
if(targetInt == valueInt) { ....

of ineens

if((int)(value*1000) == (int)(target*1000)) { ...

bij de tweede moet je wel opletten met de plaatsing van de haakjes, anders wordt het eerst afgekapt en dan pas met 1000 vermenigvuldigd. Met integers rekenen is veel sneller dan floats ook trouwens.

En x+=2 is kort voor x=x+2, en x++ is weer gelijk aan x+=1 allemaal standaard C
Die int kan wellicht te klein zijn, in arduino is een int een 16bit getal. Moet er een long van maken want we hebben grotere getal dan 32.767.

[ Voor 50% gewijzigd door mad_max234 op 19-01-2015 13:44 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 17-09 20:02
Bitshiften als je dat doet....

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Zoiets kan overigens ook, dan omzeil je het probleem ook, mocht je floats niet kunnen vermijden door welke rede dan ook.

if(var > 0.0009 && var < 0.0011)

Floats vermijden doen we overigens om meer reden als we op 8itter programmeren, floats zijn relatief zwaar voor 8bitter, kost extra resource(gehuegen en ram) wat meestal schaars is.

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Dat floats niet zo nauwkeurig zijn had ik inderdaad al op meer plaatsen gelezen, waarom dat is ontgaat me heel even. In de daadwerkelijke toepassing moet ik tot 6 decimalen precies zijn (cnc). De data komt wel over Serial binnen als int, aan de kant van LinuxCNC (EMC2) word de float ook al vermenigvuldigd met 1.000.000 namelijk.

Ik denk dat ik 't geheel dan gewoon in long vars ga zetten en waar ik een visuele weergave nodig heb (bijv. lcd) kan ik altijd nog delen door 1.000.000.

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Geen enkele normale computer kan floats 100% goed verwerken, AMD en intel zullen ver achter de komma afwijking hebben, dat is al zins het begin zo. Is heel simpel de wereld houd niet op bij 32bit, dus moeten ze gaan afronden, float in real life kan heel ver doorlopen.

http://bd.eduweb.hhs.nl/pros1p1/double.htm

[ Voor 23% gewijzigd door mad_max234 op 19-01-2015 17:52 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Ik had er inderdaad zelf ook al een beetje naar doorgezocht. Snap nu iig waar 't vandaan komt. Niet dat ik er mee eens ben ofzo :+ Binnen de Arduino's zijn floats en doubles geloof ik identiek.

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Kleine kick voor m'n vraag iets hoger (linkje) ivm wat er beter is: een lange kabel tussen verluchtingsgroep en printje met 4n25 of het printje dicht bij de unit plaatsen en een lange kabel tussen de arduino en het printje (dus gnd/5v/3.3 over 30m transporteren) :?

Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
Voeding over 30m? Dan krijg je een spanningsval. Het beste is dan een hogere spanning op de kabel zetten (12v ofzo) en dan aan het andere eind 2 LM317's voor de 5v en 3.3v. Zo voed ik de Arduino in de kelder bij de gas- en watermeter, er is daar geen stopcontact. Heb daarom dus een 12v voeding in de meterkast, lange utp kabel (waar ook rx/tx overheen gaat zonder problemen) naar de andere ruimte en aan het andere eind een spanningsregelaar om er 5v van te maken. Als die 12v last heeft van een spanningsval, dan merkt het spul achter de spanningsregelaar er niets van :)

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
zou die spanningsval problematisch zijn voor deze schakeling (bovenste): nu zit de lange kabel aan de rechterzijde (uitgang 4n25) en dat vertraagt de boel. nu zou ik ze links steken (schema ooit gemaakt voor m'n raspberry pi, maar wegens tekort aan io pinnen is het geheel verhuisd naar een arduino)

[ Voor 20% gewijzigd door Promy op 21-01-2015 19:14 ]


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Beetje moeilijk om te zeggen. Hoe ziet "de andere kant" er uit? Welke spanning op contact a/b/c/d en welke stroom moet er daar vloeien?

edit:
Net de pdf gezien in jouw link. Verlaag eens die weerstand van 560 ohm naar 220 ohm.

edit 2:
Gisteren zat ik het bovenstaande op m'n iPad te tikken, net iets minder handig dan op pc ;)
Even een snelle berekening;
BC547
De GPIO is 5V veronderstel ik? De VBE nemen we 0,7V dan is IB = (5V - 0,7V) / 27K = 0,159 mA. We stellen dat de versterkingsfactor hFE = 110. De maximale IC is dan 0,159 mA * 110 = 17,5 mA. Maar hoeveel is de IC van de BC547 werkelijk? Deze is logischergewijs gelijk aan de IF van de 4N25.
4N25
Laten we stellen dat de VCE van de BC547 in geleiding ongeveer 0,1V is. De VF is volgens de datasheet typical 1,3V. De stroom IF = (5V - 1,3V - 0,1V) / 560 ohm = 6,42 mA. Nu dien je er rekening mee te houden dat een optocoupler niet echt een "schakelaar" is, je kan het meer vergelijken met een transistor en dus heeft het ding iets wat lijkt op een versterkingsfactor. Hier wordt dit uitgedrukt in % en heet dit Current Transfer Ratio oftewel CTR. Volgens de datasheet minimum 20%, typisch 50%. Dit betekent dat in het slechte geval de output curren van de optocoupler 6,42 mA * 0,2 = 1,28 mA is. Kan best hoger zijn, dit is allemaal een snelle en ruwe schatting.

Afbeeldingslocatie: http://www.hetgrensland.be/schema3.jpg

Toch kan dit een te lage stroom zijn voor de input van de module. Waarschijnlijk heeft de inputmodule een kleine RC kring om stoorpulsen er uit te filteren en een pull up weerstand de voedingsspanning. Waarschijnlijk 12V wat betrouwbaarder is bij lange dunne kabels ;) Stel dat we een condensator van 12V willen ontladen naar 1V in 5 seconden met een constante stroom van 2 mA. Dan hebben we een condensator nodig van 5s * 0,002A / 11V = 909 µF. Lijkt me veel te groot voor een ingangsfilter. Echter is deze berekening voor het ontladen van enkel die condensator. De pull-up weerstand heeft uiteraard ook invloed en in mindere mate ook de input van de controller en de lange kabel. Wat betreft de pull-up, ik kan me best inbeelden dat die slechts 10K is. Dan moet er een stroom van 1,1 mA vloeien om de input op 1V te houden.

Bovenstaande is een snelle berekening en ik heb de helft van de formules terug moeten opzoeken omdat mijn elektronische kennis wat roestig is ;) Dus er is een grote kans dat mijn redenering er volledig naast zit en ik bovenstaande lap voor niks heb getikt :+ Maar als het verlagen van de weerstand van 560 ohm de tijd ook inkort, zou mijn redenering best wel eens juist kunnen zijn :P Veel verder verlagen kan pas door de weerstand van 27K ook te verlagen. Indien je een galvanische scheiding wil, is de definitieve oplossing het plaatsen van een transistor aan de uitgang van de optocoupler of de optocoupler vervangen.

[ Voor 115% gewijzigd door D-Three op 23-01-2015 00:43 ]


Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Iemand een idee waar ik voor een redelijke prijs een Big EasyDriver vandaan kan halen? Liefst uit NL of DE? Ik heb op dit moment al 2 B ED's die super werken en 1 DRV8825 die me niets dan problemen geeft.

Die DRV8825 maakt een gruwelijke herrie als de stepper stil staat, het ding word ook super heet en is alles behalve betrouwbaar. Ik had ook al een tijdje een super plastic brandlucht die ik niet helemaal kon plaatsen. Toen ik zonet de driver van m'n breadboard trok was dat mysterie ook opgelost, de driver outputs hebben gewoon 't breadboard afgefakkeld.... Om 't zachtjes uit te drukken ben ik redelijk klaar met dat ding.

De B ED's werken super, geen herrie, stapvast, richtingvast en veel minder warmte ontwikkeling. Ze mochten alleen wat kleiner zijn. Alleen heeft iPrototype ze blijkbaar niet op voorraad meer, wat jammer is. Ik heb ze nog wel in een webshop in duitsland gevonden maar daar vragen ze de hoofdprijs voor die dingen. Suggesties?

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • Ploink
  • Registratie: April 2002
  • Laatst online: 21-08 13:05
C.44 schreef op vrijdag 23 januari 2015 @ 13:54:
Die DRV8825 maakt een gruwelijke herrie als de stepper stil staat, het ding word ook super heet en is alles behalve betrouwbaar. Ik had ook al een tijdje een super plastic brandlucht die ik niet helemaal kon plaatsen. Toen ik zonet de driver van m'n breadboard trok was dat mysterie ook opgelost, de driver outputs hebben gewoon 't breadboard afgefakkeld.... Om 't zachtjes uit te drukken ben ik redelijk klaar met dat ding.
Dat vind ik wat kort door de bocht. De DRV8825 wordt gemaakt door Texas Instruments, een heel gerespecteerde fabrikant, die maken geen rommel.
Je hebt een module gekocht waar deze chip op zit en misschien dat de module bakker een foutje heeft gemaakt, maar waarschijnlijk heb je zelf iets verkeerd gedaan.

Acties:
  • 0 Henk 'm!

  • Sleurhutje
  • Registratie: Maart 2004
  • Laatst online: 11-09 08:49
C.44 schreef op vrijdag 23 januari 2015 @ 13:54:
Die DRV8825 maakt een gruwelijke herrie als de stepper stil staat, het ding word ook super heet en is alles behalve betrouwbaar. Ik had ook al een tijdje een super plastic brandlucht die ik niet helemaal kon plaatsen. Toen ik zonet de driver van m'n breadboard trok was dat mysterie ook opgelost, de driver outputs hebben gewoon 't breadboard afgefakkeld.... Om 't zachtjes uit te drukken ben ik redelijk klaar met dat ding.
De DRV8825 heeft een current limiter. Als die niet goed ingesteld is, zal de maximale stroom gaan lopen. Daardoor kan enorm veel hitte ontstaan. Dat zal, zeker zonder koelvin, funest worden voor de DRV8825 (Blz 12: https://www.pololu.com/file/0J590/drv8825.pdf).

Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Dat de chip zelf in orde is daar twijfel ik niet over. 't Board dat ik heb is een Polulu design. Ik heb ook wat andere spullen van Polulu waar ik best tevreden over ben maar dit design is gewoon matig. Zie ook: https://plus.google.com/+ThomasSanladerer/posts/6kAqVLTHDW6

Ik ben uiteraard niet zo makkelijk uit 't veld te slaan maar die driver maakt godsgruwelijke takkeherrie. Uiteraard heb ik met de potmeter het geheel eens flink naar beneden gedraaid. Gemeten op de potmeter zelf zit ik nu net onder de 1V (voorheen 1.15V) en is het gros van de herrie verdwenen alleen blijft er dus een pieptoon over die ondraaglijk is. Je hoort 't bijna niet vanwege de frequentie maar 't vreselijk irritant.

Ik ben op dit moment wel weer die driver in de gaten aan 't houden omdat er wederom een lichte brandlucht te bespeuren is. Het is dus niet de chip zelf die goed warm aan 't worden is maar de headers die ik in 't breadbord steek. En dan ook alleen die waar dan weer de motorspoelen op zijn aangesloten. Iets zegt me dat die breadbordjes hier niet voor bedoeld zijn xD

Buiten dat moet ik zeggen dat ik veel betere ervaringen heb met de Big EasyDrivers. Die produceren die gruwelijke pieptoon niet en zijn veel eenvoudiger af te stellen. Enig nadeel is wel dat ze behoorlijk aan de prijs zijn vergeleken met de DRV8825 en ze voor breadboards eigenlijk te groot zijn.

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • Ploink
  • Registratie: April 2002
  • Laatst online: 21-08 13:05
C.44 schreef op vrijdag 23 januari 2015 @ 16:44:
Ik ben uiteraard niet zo makkelijk uit 't veld te slaan maar die driver maakt godsgruwelijke takkeherrie. Uiteraard heb ik met de potmeter het geheel eens flink naar beneden gedraaid. Gemeten op de potmeter zelf zit ik nu net onder de 1V (voorheen 1.15V) en is het gros van de herrie verdwenen alleen blijft er dus een pieptoon over die ondraaglijk is. Je hoort 't bijna niet vanwege de frequentie maar 't vreselijk irritant.
Volgens de datasheet moet de PWM frequency 30kHz zijn en dat is onhoorbaar. Misschien is de chip op die module een chinese fake? Ik zie de module op ebay voor $2 en de chip bij farnell is al duurder...

Dat je breadboard smelt ligt dus aan je breadboard als ik het goed begrijp, ook een Chinese fake ;)

Acties:
  • 0 Henk 'm!

  • DavidZH
  • Registratie: Oktober 2008
  • Laatst online: 13:03
Sowieso is het sturen van grote stromen door een breadboard niet het beste idee. Zeker niet de langdurige stromen van een stappenmotor (houdstroom).
Is het niet een idee om een stuk gaatjesprint met echte headers te pakken en daar een lekker dikke baan soldeer onder te gooien?

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
@D-Three: toch ff 2 keer moeten lezen voor ik (met m'n nog roestiger kennis) mee was ;)
Ik heb eens voor de eenvoud een relais gebruikt in plaats van de 4n25 en het probleem blijft. Het relais klap onmiddelijk, maar de ventillator reageert opnieuw traag.
Morgen nog eens proberen met een relais en dicht bij de ventillator, eens het verschil bekijken!

Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Ploink schreef op vrijdag 23 januari 2015 @ 19:17:
[...]

Volgens de datasheet moet de PWM frequency 30kHz zijn en dat is onhoorbaar. Misschien is de chip op die module een chinese fake? Ik zie de module op ebay voor $2 en de chip bij farnell is al duurder...

Dat je breadboard smelt ligt dus aan je breadboard als ik het goed begrijp, ook een Chinese fake ;)
De DRV8825 is voor zover ik weet geen chinese fake, gewoon in Duitsland gekocht, kostte een euro of 8 geloof ik :z De breadboards die ik gebruik zijn idd chinees, maar ik denk dat duurdere breadboards uit europa qua design niet beter zullen zijn eerlijk gezegd.

Ik heb rond de tijd van aankoop rondgekeken en de gaande prijs voor dit Polulu design zat ongeveer rond die prijs. Het is natuurlijk altijd mogelijk dat het evengoed een fake chip is die op de module zit. Ik heb vandaag nog een beetje rondgezocht op 't net en ik ben blijkbaar niet de enige die die irritante pieptoon hoort.

Dat het wellicht geen snugger idee is om dergelijke aansluitingen over een breadboard te laten lopen ben ik met je eens, ik zit na het bouwen van m'n Hall limitswitches alleen even zonder gaatjesprint. Ik denk dat ik voor nu even de enable pins mee ga pakken in m'n code en die drivers uitschakel zogauw ze stil staan, lijkt me voorlopig een goed idee.

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:31
Ik ben wat aan het klooien met een Arduino + ESP8266. Nu lukt het mij om waarden van een DS18B20 via een GET request te versturen.

Nu staat er in de Arduino code:
C++:
1
2
3
4
5
  cmd = GET;
  cmd += tempF;
  cmd += " HTTP/1.1\r\n";  //construct http GET request
  cmd += "Host: 192.168.4.15\r\n\r\n"; //Change this IP to the IP-adress of your Domoticz    
  Serial.print("AT+CIPSEND=");


Die HTTP/1.1 en Host: heb ik zelf al toegevoegd, anders werkte het helemaal niet (voorbeeldsketch ergens weggehaald).

Nou zie ik echter dat ze bij Arduino zelf nog een 'Connection close' en een lege regel erachteraan doen. Dat lijkt mij ook wat netter (laten we ons maar wel aan de HTTP standaard houden he, ondanks dat het nu ook werkt), maar ik krijg het niet voor elkaar. Ik raak een beetje in de war met die \r\n

Acties:
  • 0 Henk 'm!

  • Ploink
  • Registratie: April 2002
  • Laatst online: 21-08 13:05
C.44 schreef op vrijdag 23 januari 2015 @ 23:11:
De breadboards die ik gebruik zijn idd chinees, maar ik denk dat duurdere breadboards uit europa qua design niet beter zullen zijn eerlijk gezegd.
Net ff een oud mini-breadbordje getest. Dat ding is uit 1999, dat ze die nog verkopen :D. Ik heb ook nog ergens een grote breadboard van ruim 25 jaar oud.

Bij 1A meet ik 13-14mV over 5 gaatjes, twee contacten en een paar mm draad, dus 13-14mΩ weerstand.
Ook bij 3A*42mV=126mW werd het amper warm. Kwaliteitsverschil is er dus wel degelijk.

Acties:
  • 0 Henk 'm!

  • TheGrillmeister
  • Registratie: Februari 2010
  • Laatst online: 19:41
ThinkPadd schreef op vrijdag 23 januari 2015 @ 23:48:
Ik ben wat aan het klooien met een Arduino + ESP8266. Nu lukt het mij om waarden van een DS18B20 via een GET request te versturen.

Nu staat er in de Arduino code:
C++:
1
2
3
4
5
  cmd = GET;
  cmd += tempF;
  cmd += " HTTP/1.1\r\n";  //construct http GET request
  cmd += "Host: 192.168.4.15\r\n\r\n"; //Change this IP to the IP-adress of your Domoticz    
  Serial.print("AT+CIPSEND=");


Die HTTP/1.1 en Host: heb ik zelf al toegevoegd, anders werkte het helemaal niet (voorbeeldsketch ergens weggehaald).

Nou zie ik echter dat ze bij Arduino zelf nog een 'Connection close' en een lege regel erachteraan doen. Dat lijkt mij ook wat netter (laten we ons maar wel aan de HTTP standaard houden he, ondanks dat het nu ook werkt), maar ik krijg het niet voor elkaar. Ik raak een beetje in de war met die \r\n
Mijn request naar devicehub ziet er zo uit:

// Make a HTTP request:
client.print("GET /io/---ID----/?apiKey=");
client.print(apiKey);
client.print("&");
client.print(sensorName);
client.print("=");
client.print(sensorValue);
client.println(" HTTP/1.1");
client.println("Host: www.devicehub.net");
client.println("User-Agent: devicehub");
client.println("Connection: close");
client.println();
client.stop();

misschien heb je er wat aan

Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Ploink schreef op zaterdag 24 januari 2015 @ 00:19:
[...]

Net ff een oud mini-breadbordje getest. Dat ding is uit 1999, dat ze die nog verkopen :D. Ik heb ook nog ergens een grote breadboard van ruim 25 jaar oud.

Bij 1A meet ik 13-14mV over 5 gaatjes, twee contacten en een paar mm draad, dus 13-14mΩ weerstand.
Ook bij 3A*42mV=126mW werd het amper warm. Kwaliteitsverschil is er dus wel degelijk.
Dat er kwaliteitsverschil is betwijfel ik niet hoor, maar ik jaag er wel een klein beetje meer sap doorheen. Er staat aan die kant van 't breadboard ~12V @ max 2.5A op :z

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • Ploink
  • Registratie: April 2002
  • Laatst online: 21-08 13:05
C.44 schreef op zaterdag 24 januari 2015 @ 16:03:
[...]


Dat er kwaliteitsverschil is betwijfel ik niet hoor, maar ik jaag er wel een klein beetje meer sap doorheen. Er staat aan die kant van 't breadboard ~12V @ max 2.5A op :z
:? Hoe hoog is je stroom dan wel niet?
DRV8825 max current is 2.5A!

Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:42
ThinkPadd schreef op vrijdag 23 januari 2015 @ 23:48:
Ik ben wat aan het klooien met een Arduino + ESP8266. Nu lukt het mij om waarden van een DS18B20 via een GET request te versturen.

Nu staat er in de Arduino code:
C++:
1
2
3
4
5
  cmd = GET;
  cmd += tempF;
  cmd += " HTTP/1.1\r\n";  //construct http GET request
  cmd += "Host: 192.168.4.15\r\n\r\n"; //Change this IP to the IP-adress of your Domoticz    
  Serial.print("AT+CIPSEND=");


Die HTTP/1.1 en Host: heb ik zelf al toegevoegd, anders werkte het helemaal niet (voorbeeldsketch ergens weggehaald).

Nou zie ik echter dat ze bij Arduino zelf nog een 'Connection close' en een lege regel erachteraan doen. Dat lijkt mij ook wat netter (laten we ons maar wel aan de HTTP standaard houden he, ondanks dat het nu ook werkt), maar ik krijg het niet voor elkaar. Ik raak een beetje in de war met die \r\n
Zowiezo is het bijzonder dat het werkt, want volgens mij moet je na de commando: "AT+CIPSEND=" het kanaal opgeven als je multi connection mode gebruikt en daarna de grote van de payload en anders als je single channel mode gebruikt moet je de lengte opgeven.

Zie: https://nurdspace.nl/ESP8266#AT_Commands

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:31
Tichelmanm schreef op zaterdag 24 januari 2015 @ 13:23:
[...]


Mijn request naar devicehub ziet er zo uit:

[..]

misschien heb je er wat aan
Thanks. Dat lijkt mij inderdaad de manier zoals het hoort, net als op de Arduino pagina. Maar ik kwam in de knoei met die \r\n e.d. Op een gegeven moment werkte het versturen helemaal niet meer.
Vuikie schreef op zaterdag 24 januari 2015 @ 16:34:
[...]


ZSowiezso is het bijzonder dat het werkt, want volgens mij moet je na de commando: "AT+CIPSEND=" het kanaal opgeven als je multi connection mode gebruikt en daarna de grote van de payload en anders als je single channel mode gebruikt moet je de lengte opgeven.

Zie: https://nurdspace.nl/ESP8266#AT_Commands
Thanks, maar dit is niet de gehele sketch natuurlijk ;) Die heb ik hier geupload: http://pastebin.com/CJcbALjN

Lengte stuurt hij wel, dus dat lijkt me wel in orde. Het werkt verder ook, alleen het afsluiten van het HTTP request kan wel wat netter volgens mij.

Acties:
  • 0 Henk 'm!

  • C.44
  • Registratie: Juni 2001
  • Laatst online: 05-08-2020

C.44

TurboCharged Supra Driver

Ploink schreef op zaterdag 24 januari 2015 @ 16:11:
[...]

:? Hoe hoog is je stroom dan wel niet?
DRV8825 max current is 2.5A!
Sorry, ik moet beter lezen (en zorgen dat ik wakker ben van te voren :x) Jij heb 't over een paar mV verlies over 5 gaatjes. Ik heb aan die kant een voeding van 12v hangen en er kan vervolgens idd max 2.5A per spoel over die sporen gevoed worden. Wat het verlies is geen idee, niet gemeten maar ik vermoed dat die Chinese breadboards iets meer verliezen.

Toyota Supra 3.0i Turbo Targa in Panther Black Mica - 300D || 30D || 10-20 || 50mm 1.8 mk1 || 18-55 || 17-85 || 75-300 || Giottos || Manfrotto || Cullmann || Kenko || Hoya


Acties:
  • 0 Henk 'm!

  • Roet
  • Registratie: Augustus 2001
  • Laatst online: 16:23
Ik ben nieuw met Arduino maar vind de startpost toch ietwat karig dus ben op onderzoek gegaan. Heb inmiddels ook de starter kit gekocht om gevoel te krijgen bij het platform. Echter heb ik het ook gekocht om bepaalde doelen mee te bereiken, één daarvan is low power datalogging van temperatuur, voor in de groentetuin van mijn ouders.

Nu lees ik op meerdere plekken om dat te doen met een RTC zoals hier omschreven, echter mis ik nog een basic tutorial voor het experimenteren met een RTC.

Nu dacht ik, om simpel te beginnen met een module van ebay om deze dan vervolgens in de Arduino te prikken. Is dat een slim idee? Ik probeer een idee te krijgen van hoe de constructie werkt om een RTC te gebruiken om de Arduino aan/uit te zetten. Ik hoef geen kant en klare brokken, maar ik zou graag weten in welke richting ik moet zoeken.

@Hieronder:

Die had ik inderdaad gespot, ga ik daar eens mee beginnen omdat dat toch een compleet pakketje is. Ik vroeg me alleen af of je daarmee hetzelfde kan bereiken als deze:
https://www.tindie.com/pr...gging-shield-for-arduino/

Want 0.03uA @ 7.2V in sleep mode klinkt wel erg deftig.

[ Voor 14% gewijzigd door Roet op 27-01-2015 22:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

je kan ook is denken aan een zgn ' data logger shield

dat is een print met onderdelen die je zo op een arduino uno kan steken.

Acties:
  • 0 Henk 'm!

  • ikt
  • Registratie: Juli 2008
  • Laatst online: 15:09

ikt

Hoi!

Ik ben zojuist klaar met een semester/project en ik heb een Arduino, een hoop LEDjes en wat ander prullerei over (LDRs, een heus keypad, servo's). Jammer genoeg is het breadbordje van school geleend.

Nu zie ik op DealExtreme enkele goedkope kits (<$30) met wat handige onderdelen, onder ander een breadbord en meer draadjes. Kunnen jullie me een verzameling van dingen aanraden die ik ooit nodig zou kunnen hebben voor simpele projectjes? Ik heb sowieso een meer competente verzameling nodig van weerstandjes, meer plugjes en een breadboard.

Ik heb dit gevonden! Klik!

[ Voor 12% gewijzigd door ikt op 27-01-2015 23:41 ]


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Gewoon kopen wat je nodig hebt en koop telkens enkele reservecomponenten. Zo wordt jouw verzameling telkens ook iets uitgebreider. Want zo'n kit bevat dan net weer niet wat je nodig hebt voor een bepaald projectje en/of de helft gebruik je niet. Just my 2 cents ;)

Acties:
  • 0 Henk 'm!

  • ikt
  • Registratie: Juli 2008
  • Laatst online: 15:09

ikt

Lijken de dingen die in het kitje zitten wel handig? Ik moet ergens beginnen, en dit heeft een groot breadboard, zat kabels en zat weerstandjes. :)

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
@ikt:
Er zijn tientallen van dat soort setjes te vinden, allemaal met andere samenstellingen met hun eigen voors en tegens. Er staan nog 2 setjes genoemd op die pagina met wat meer sensoren e.d. erin. Afhankelijk van wat je wilt doen moet je zelf bepalen wat je handig vind. Bedenk ook dat je altijd losse onderdelen kunt aanvullen vanaf ebay e.d.
Persoonlijk ben ik wel voorstander om te beginnen met een kit, een kleine grijpvoorraad heb je toch wel nodig.




@Roet:
Wil je je arduino voeden met een batterij? Dan is het wel interessant om naar low power modes te kijken, als je een netvoeding hebt zou ik me daar niet druk om maken.
soortgelijke shields zijn ook op ebay wel te krijgen voor een dollar of 4-5. Daarmee zul je ook met low power modes kunnen werken, alleen zul je dan zelf wat meer uitzoekwerk moeten doen.

Acties:
  • 0 Henk 'm!

  • ikt
  • Registratie: Juli 2008
  • Laatst online: 15:09

ikt

Zo, dat beginkitje heb ik gekocht met de standaardcomponenten die je sowieso nodig hebt, met een extra LCD-shield en een BT-module omdat verzendkosten ;) Bedankt voor de feedback!

Acties:
  • 0 Henk 'm!

  • flessuh
  • Registratie: Maart 2005
  • Laatst online: 17-09 14:26

flessuh

Set sail for fail!

Hallo allemaal, ik ben ietswat een leek maar heb wel wat basis ervaring met programmeren.
Nu zit ik bij een project waar we een situatie hebben waarvan ik me afvraag of arduino hier ook een goed platform voor zal zijn (en niet té complex)

Het betreft een controlesysteem voor een testboot met draagvleugels
Op 3 plaatsen meet een sensor (verdeeld in een T met op de uiteinden een sensor)
Binnen bepaalde waarden (hoogte) gebeurt er niks, maar buiten een gespecificeerde range (moet instelbaar zijn) moet er een motor, een aanpassing maken (hoek van de vleugel iets veranderd).
Het punt is dat de waarde per sensor kan/zal verschillebn en dus ook de actie zal verschillen.
Kan dit dan met 1 arduino bordje of moet er per sensor/servo combo een plaatje gemaakt worden.
Een 2e is de polling rate van de sensor. Het ideaalbeeld is dat deze op 3 niveaus ingesteld kan worden.

Sorry van de vage omschrijving, maar veel duidelijker kan ik het zo niet echt maken volgens mij.
En denken jullie dat een arduino leek (medium php kennis, en basis begrip van C) dit zou kunnen doen?

https://www.dutchsolarboat.com


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Lijkt me zeker doenbaar met 1 bordje, 3 sensoren uitlezen en enkele waardes onthouden is een eitje voor zo'n ding. Al hangt het er uiteraard een beetje van af hoe complex en hoe snel er geregeld moet worden. Meerdere bordjes gebruiken lijkt me voor dit project zelfs minder interessant, de vleugels van 1 boot onafhankelijk gaan regelen is minder stabiel en veilig?

Met een kennis van C moet dit wel lukken. Verwacht echter niet in een paar uur iets klaar te hebben als je totaal geen ervaring met microcontrollers of elektronica ;) Wat ons ook brengt bij het volgende, met een arduino alleen ben je niks. Je zal dus wat extra elektronica nodig hebben. Dikwijls kunnen bepaalde shields je op weg helpen maar meestal kom je er niet aan uit om zelf nog wat te knutselen.

Acties:
  • 0 Henk 'm!

  • A1AD
  • Registratie: Juli 2013
  • Laatst online: 18-09 11:46
Ik kan zo niet onmiddellijk vinden hoe ik de watchdog timer kan gebruiken in interrupt reset mode. Genoeg voorbeelden voor de interrupt mode of de reset only mode, maar geen van de 2 samen...

Wat ik wel gevonden heb is dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void WDT_Init(void)
{
//disable interrupts
cli();
//reset watchdog
wdt_reset();
//set up WDT interrupt
WDTCSR = (1<<WDCE)|(1<<WDE);
//Start watchdog timer with 4s prescaller
WDTCSR = (1<<WDIE)|(1<<WDE)|(1<<WDP3);

//Enable global interrupts
sei();
}


Werkt perfect. Interrupt op 4 seconden, reset na nog eens 4 seconden. Maar op mijn avr kennis zit serieuze roest op en ik heb geen idee hoe ik hem instel op 8 sec.

- Deze advertentie is geblokkeerd door Pi-Hole -


Acties:
  • 0 Henk 'm!

  • flessuh
  • Registratie: Maart 2005
  • Laatst online: 17-09 14:26

flessuh

Set sail for fail!

D-Three schreef op woensdag 28 januari 2015 @ 18:47:
Lijkt me zeker doenbaar met 1 bordje, 3 sensoren uitlezen en enkele waardes onthouden is een eitje voor zo'n ding. Al hangt het er uiteraard een beetje van af hoe complex en hoe snel er geregeld moet worden. Meerdere bordjes gebruiken lijkt me voor dit project zelfs minder interessant, de vleugels van 1 boot onafhankelijk gaan regelen is minder stabiel en veilig?

Met een kennis van C moet dit wel lukken. Verwacht echter niet in een paar uur iets klaar te hebben als je totaal geen ervaring met microcontrollers of elektronica ;) Wat ons ook brengt bij het volgende, met een arduino alleen ben je niks. Je zal dus wat extra elektronica nodig hebben. Dikwijls kunnen bepaalde shields je op weg helpen maar meestal kom je er niet aan uit om zelf nog wat te knutselen.
Nou ja, ietswat ervaring moet je wel hebben met electronica met een elektrisch aangedreven boot uiteraard.
We zouden het pas over een paar maand nodig hebben, dus ik heb tijd genoeg :)

https://www.dutchsolarboat.com


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Je zal de datasheet erbij moeten pakken om te kijken welke bitjes je moet setten. Met wat gokken kom ik erop uit dat laatste commando de watchdog interrupt enable, watchdog enable en watchdog prescaler 3 set. Oftewel door prescalers 0-2 (en misschien ook nog wel een 4, weet niet hoe ver die gaat) kan je dat wijzigen. Als het een binaire deler is dan is |(1<<WDP0); toevoegen voldoende, maar dan ben ik nu redelijk aan het gokken :).

Acties:
  • 0 Henk 'm!

  • A1AD
  • Registratie: Juli 2013
  • Laatst online: 18-09 11:46
Sissors schreef op woensdag 28 januari 2015 @ 22:52:
Als het een binaire deler is dan is |(1<<WDP0); toevoegen voldoende, maar dan ben ik nu redelijk aan het gokken :).
Jij held :) _/-\o_

- Deze advertentie is geblokkeerd door Pi-Hole -


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Ik heb hier een arduino nano die een 8 voudig relais aanstuurt.
Er is echter precies iets mis: hij reageert niet altijd even goed op seriele commando's: als je de eerste keer een commando stuurt krijg ik de foutmelding (zie code hieronder), en als ik hetzelfde commando opnieuw stuur, doet hij het wel goed.
Na een tijdje verliest hij echter de inhoud van variabele message2 ? (hij print enkel BOVEN: bij het sturen van commando S)

Ik kan het probleem niet vinden, want in principe is de code toch zeer simpel (de RS_buffer heb ik herbruikt van een ander project, waar die zonder probleem werkte?
Heeft er iemand een idee wat het probleem zou kunnen zijn?
De arduino en de relais trekken hun stroom via de usb poort.

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
Ontvanger voor zetten elek ventielen vloerverwarming dmv arduino nano met 8channel relais en elektrische ventielen
(Salus Thermischer Stellantrieb T30NC230 (230V)) van ebaygebruiker: modere_de
 */

// voor de verwerking van de seriele commando's
int RS_i=0 ;
byte RS_byte;
byte RS_data[40];   //Buffer voor RS232
int i;
// variablen voor het relais
int relais1 = 2; 
int relais2 = 3; 
int relais3 = 4; 
int relais4 = 5; 
int relais5 = 6; 
int relais6 = 7; 
//relais 7 buiten dienst wegens slechte aansluiting voorlopig
int relais8 = 9; 

////////////////////////////////////////////////////////////////////////////////
// de kraan open zetten is relais op HIGH zetten, dit is dus bij een waarde 1 //
// de kraan dicht zetten is relais op LOW zetten, dit is dus bij een waarde 0 //
////////////////////////////////////////////////////////////////////////////////
void setup(void)
{
  Serial.begin(9600);
  Serial.println("aansturing vloerverwarming_v5");
  Serial.println("zetten van relais in formaat z010101e voor de eerste 6 relais");
  Serial.println("status opvragen met commando S - geeft formaat z010101e voor de eerste 6 relais");
  Serial.println("hierbij is 1 een open klep en 0 een gesloten klep");
  //alle pinnen initialiseren en op 1 zetten, zo staan ze open in geval van geen werking van het geheel
  pinMode(relais1,OUTPUT);digitalWrite(relais1,HIGH);
  pinMode(relais2,OUTPUT);digitalWrite(relais2,HIGH);
  pinMode(relais3,OUTPUT);digitalWrite(relais3,HIGH);
  pinMode(relais4,OUTPUT);digitalWrite(relais4,HIGH);
  pinMode(relais5,OUTPUT);digitalWrite(relais5,HIGH);
  pinMode(relais6,OUTPUT);digitalWrite(relais6,HIGH);
}

void loop(void)
{
  /////////////////////////////////////////////
  // RS232 - seriele poort verwerken         //
  /////////////////////////////////////////////
  if (Serial.available()>0)  // doe iets met de inkomende RS232 boodschappen
  {  RS_byte=Serial.read();
     RS_data[RS_i++]=RS_byte;
     if (RS_byte==10||RS_byte==13) {RS_datafilter();}
  }

}

//-------------------------------------------------------------------------------
//           Extra RS232 routines
//-------------------------------------------------------------------------------

void RS_datafilter()  // Filter inkomende RS232 boodschappen
{    int aantal; boolean NB_init;
     //zetten van de status 
     if(RS_data[0]=='z' && RS_data[7]=='e') //zetten van het relais waarbij het bericht in de format z010101e is waarbij eerste en laatste steeds z en e zijn, deze ertussen is de status van relais 1,2,3,4,5,6
     // we negeren dus de achterkomende dingen
     {
        int goedcomm = 1; //we gaan ervanuit dat het lukt, 
        if (RS_data[1]=='1'){digitalWrite(relais1, HIGH);}else if (RS_data[1]=='0'){digitalWrite(relais1, LOW);} else {goedcomm = 0;} //eerste relais - als het geen 0 of 1 was geven we een foutmelding 
        if (RS_data[2]=='1'){digitalWrite(relais2, HIGH);}else if (RS_data[2]=='0'){digitalWrite(relais2, LOW);} else {goedcomm = 0;} //tweede relais 
        if (RS_data[3]=='1'){digitalWrite(relais3, HIGH);}else if (RS_data[3]=='0'){digitalWrite(relais3, LOW);} else {goedcomm = 0;} //derde relais 
        if (RS_data[4]=='1'){digitalWrite(relais4, HIGH);}else if (RS_data[4]=='0'){digitalWrite(relais4, LOW);} else {goedcomm = 0;} //vierde relais 
        if (RS_data[5]=='1'){digitalWrite(relais5, HIGH);}else if (RS_data[5]=='0'){digitalWrite(relais5, LOW);} else {goedcomm = 0;} //vijfde relais 
        if (RS_data[6]=='1'){digitalWrite(relais6, HIGH);}else if (RS_data[6]=='0'){digitalWrite(relais6, LOW);} else {goedcomm = 0;} //zesde relais

        //nu nog controleren of het gelukt is.
        int gelukt = 0;
        if ((RS_data[1]=='1' && digitalRead(relais1)== HIGH) || (RS_data[1]=='0' && digitalRead(relais1)== LOW)){gelukt = 1;} else {gelukt = 0;}
        if ((RS_data[2]=='1' && digitalRead(relais2)== HIGH) || (RS_data[2]=='0' && digitalRead(relais2)== LOW)){gelukt = 1;} else {gelukt = 0;}
        if ((RS_data[3]=='1' && digitalRead(relais3)== HIGH) || (RS_data[3]=='0' && digitalRead(relais3)== LOW)){gelukt = 1;} else {gelukt = 0;}
        if ((RS_data[4]=='1' && digitalRead(relais4)== HIGH) || (RS_data[4]=='0' && digitalRead(relais4)== LOW)){gelukt = 1;} else {gelukt = 0;}
        if ((RS_data[5]=='1' && digitalRead(relais5)== HIGH) || (RS_data[5]=='0' && digitalRead(relais5)== LOW)){gelukt = 1;} else {gelukt = 0;}
        if ((RS_data[6]=='1' && digitalRead(relais6)== HIGH) || (RS_data[6]=='0' && digitalRead(relais6)== LOW)){gelukt = 1;} else {gelukt = 0;}
        
        //nu nog feedback geven
        if (goedcomm == 0){
          Serial.println("BOVEN:fout, formaat moet z010101e zijn met de status van relais 1 tem 6 met 1 voor kraan open en 0 voor kraan dicht "); //het was een slecht commando
        }else if (gelukt == 0) {
          Serial.println("BOVEN:FOUT, probeer opnieuw"); //de status is niet goed gezet
        } else {
          Serial.println("BOVEN:Status zetten OK"); //het is gelukt
        }

     }

    else if(RS_data[0]=='S') //status opvragen van het relais waarbij het bericht dat teruggaat in de format z010101e is waarbij eerste en laatste steeds z en e zijn, deze ertussen is de status van relais 1,2,3,4,5,6
     {
       String message2 = "z";
       if (digitalRead(relais1)== HIGH){message2 += '1';}else{message2 += '0';} //eerste relais
       if (digitalRead(relais2)== HIGH){message2 += '1';}else{message2 += '0';} //eerste relais
       if (digitalRead(relais3)== HIGH){message2 += '1';}else{message2 += '0';} //eerste relais
       if (digitalRead(relais4)== HIGH){message2 += '1';}else{message2 += '0';} //eerste relais
       if (digitalRead(relais5)== HIGH){message2 += '1';}else{message2 += '0';} //eerste relais
       if (digitalRead(relais6)== HIGH){message2 += '1';}else{message2 += '0';} //eerste relais
       message2 += 'e';
       Serial.print("BOVEN:");
       Serial.println(message2);
     }
     
     else { //foutmeling geven
       Serial.println("BOVEN:fout, formaat moet z010101e zijn met de status van relais 1 tem 6 met 1 voor kraan open en 0 voor kraan dicht of S om de status op te vragen");
     }    
    
     RS_cleardata();
}   


void RS_cleardata()  // Wis RS232 buffer
{  for (i=0; i<sizeof(RS_data);i++) {RS_data[i]=0;}
   RS_i=0;
}

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:31
Is dat relaisbord aangesloten op software serial pinnen van de Arduino?
Daar heb ik in het verleden ook veel gezeur mee gehad (slimme meter uitlezen @ 115200 baud, verminkte data daarmee). Heb toen AltSoftSerial library gebruikt, ging al een stuk beter. Maar uiteindelijk na poosje debuggen was output naar de PC niet meer nodig en ben ik overgestapt naar hardware serial en 0 problemen sindsdien.

Oh en doe eens niet de hele lap code posten, gooi dat ff op www.pastebin.com ofzo, je verprutst de hele layout zo :+

[ Voor 13% gewijzigd door ThinkPad op 28-01-2015 23:19 ]


Acties:
  • 0 Henk 'm!

  • Seesar
  • Registratie: September 2002
  • Laatst online: 06-06 13:42

Seesar

Icon thnx to l0c4lh0st

Voor een projectje zoek ik een oplossing om met een Nano via een 12bit adc een voltage uit te kunnen lezen (tussen de 0-5v). De snelheid zal rond de 200hz liggen.

met de 10 bits die de Nano biedt kom ik net wat resolutie te kort. Ik weet dat er veel ADC's (vaak 8channel) bestaan die je via I2C kunt aansluiten alleen helaas ga ik die volle bandbreedte (400khz) al gebruiken voor communicatie tussen 5 nano's (slave) en een master (een mega2560); er is dus niet genoeg ruimte mee rop de I2C lijn om ook nog op 200hz 5 adc's te pollen (voor iedere nano een ADC op locatie).

Hebben jullie suggesties? Ik zou het graag zo goedkoop mogelijk willen houden (ADC<10 euro), maar omdat dit misschien op commercieel niveau gebruikt gaat worden ben ik zelfs bereid om een nano zelf her te ontwerpen en met 12bit adc's uit te rusten als dat goedkoper is.

De beste oplosisng zou zijn dat ik een ADC serieel kan uitlezen met een nano zodat ik maar 2 pinnen kwijt ben op de nano om een 12bit resolutie te krijgen; hebben jullie een suggestie welke ADC/package daar geschikt voor zou zijn?

T60P Widescreen


Acties:
  • 0 Henk 'm!

Verwijderd

je zou is kunnen kijken naar een teensy 3.1

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
ThinkPadd schreef op woensdag 28 januari 2015 @ 23:18:
Is dat relaisbord aangesloten op software serial pinnen van de Arduino?
Daar heb ik in het verleden ook veel gezeur mee gehad (slimme meter uitlezen @ 115200 baud, verminkte data daarmee). Heb toen AltSoftSerial library gebruikt, ging al een stuk beter. Maar uiteindelijk na poosje debuggen was output naar de PC niet meer nodig en ben ik overgestapt naar hardware serial en 0 problemen sindsdien.

Oh en doe eens niet de hele lap code posten, gooi dat ff op www.pastebin.com ofzo, je verprutst de hele layout zo :+
De communicatie verloopt via de usb kabel, dus via de hardware serial port als ik me niet vergis
Het relaisbord is gewoon aangesloten op de digitale pinnen 2 tem 9

[ Voor 4% gewijzigd door Promy op 29-01-2015 12:39 ]


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:31
Promy schreef op donderdag 29 januari 2015 @ 12:38:
[...]

De communicatie verloopt via de usb kabel, dus via de hardware serial port als ik me niet vergis
Het relaisbord is gewoon aangesloten op de digitale pinnen 2 tem 9
Ok, ik snap het :) Dan weet ik het niet.

Je zou ook eens kunnen kijken naar een eth8020. Is een relay board die je rechtstreeks via het netwerk kan aanspreken. Al is zelf maken een stuk goedkoper natuurlijk ;)

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
@Seesar, een SPI ADC is dan misschien een optie? Kost je geen I2C tijd, en normaal gesproken is SPI stuk sneller dan I2C.

Acties:
  • 0 Henk 'm!

Verwijderd

Sissors schreef op donderdag 29 januari 2015 @ 13:26:
@Seesar, een SPI ADC is dan misschien een optie? Kost je geen I2C tijd, en normaal gesproken is SPI stuk sneller dan I2C.
ook betaalbaar

code examples

[ Voor 7% gewijzigd door Verwijderd op 29-01-2015 22:42 ]


Acties:
  • 0 Henk 'm!

  • Seesar
  • Registratie: September 2002
  • Laatst online: 06-06 13:42

Seesar

Icon thnx to l0c4lh0st

@ Sissors & Borroz,

thanks, daar ga ik meteen mee aan de slag om te kijken of dit geschikt is, zo op het eerste oog zou dat wel geschikt zijn!

Top!

T60P Widescreen


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Seesar schreef op donderdag 29 januari 2015 @ 10:25:
Voor een projectje zoek ik een oplossing om met een Nano via een 12bit adc een voltage uit te kunnen lezen (tussen de 0-5v). De snelheid zal rond de 200hz liggen.

met de 10 bits die de Nano biedt kom ik net wat resolutie te kort. Ik weet dat er veel ADC's (vaak 8channel) bestaan die je via I2C kunt aansluiten alleen helaas ga ik die volle bandbreedte (400khz) al gebruiken voor communicatie tussen 5 nano's (slave) en een master (een mega2560); er is dus niet genoeg ruimte mee rop de I2C lijn om ook nog op 200hz 5 adc's te pollen (voor iedere nano een ADC op locatie).

Hebben jullie suggesties? Ik zou het graag zo goedkoop mogelijk willen houden (ADC<10 euro), maar omdat dit misschien op commercieel niveau gebruikt gaat worden ben ik zelfs bereid om een nano zelf her te ontwerpen en met 12bit adc's uit te rusten als dat goedkoper is.

De beste oplosisng zou zijn dat ik een ADC serieel kan uitlezen met een nano zodat ik maar 2 pinnen kwijt ben op de nano om een 12bit resolutie te krijgen; hebben jullie een suggestie welke ADC/package daar geschikt voor zou zijn?
Je zoekt een seriële adc en je hebt het over een I2C ADC? Dan heb je het reeds zelf het antwoord gegeven, I2C is serieel :P Je kan met twee vrije pinnen bit bangen. SPI kan uiteraard ook. Voor beide zijn wel voorbeeldjes te vinden online waarop je je kan baseren.

Let wel op bij het kiezen van een ADC. Indien je één neemt die ook negatief meten kan meten, zal zo'n 12-bit ADC in feite maar een 11-bit zijn als je enkel postieve signalen wil meten.

Acties:
  • 0 Henk 'm!

  • Seesar
  • Registratie: September 2002
  • Laatst online: 06-06 13:42

Seesar

Icon thnx to l0c4lh0st

D-Three schreef op donderdag 29 januari 2015 @ 19:02:
[...]

Je zoekt een seriële adc en je hebt het over een I2C ADC? Dan heb je het reeds zelf het antwoord gegeven, I2C is serieel :P Je kan met twee vrije pinnen bit bangen. SPI kan uiteraard ook. Voor beide zijn wel voorbeeldjes te vinden online waarop je je kan baseren.

Let wel op bij het kiezen van een ADC. Indien je één neemt die ook negatief meten kan meten, zal zo'n 12-bit ADC in feite maar een 11-bit zijn als je enkel postieve signalen wil meten.
thanks, maar zoals ik schreef heb ik geen bandbreedte meer op het I2C, dus ik zocht een andere mogelijkheid; de pinning vna SPI is nog wel vrij dus ik denk dat ik die maar eens ga gebruiken!

En thnx voor je tip op over negatieve voltage, houd ik in mijn achterhoofd!

T60P Widescreen


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Seesar schreef op donderdag 29 januari 2015 @ 20:42:
[...]


thanks, maar zoals ik schreef heb ik geen bandbreedte meer op het I2C, dus ik zocht een andere mogelijkheid; de pinning vna SPI is nog wel vrij dus ik denk dat ik die maar eens ga gebruiken!

En thnx voor je tip op over negatieve voltage, houd ik in mijn achterhoofd!
Daarom zeg ik ook bit banging ;) Niet op de bestaande bus dus.
http://en.wikipedia.org/wiki/Bit_banging
http://codinglab.blogspot...vr-using-bit-banging.html

Maar als de SPI pinnen vrij zijn (4 pinnen dacht ik?), kan je inderaad ook die gebruiken :P

[ Voor 6% gewijzigd door D-Three op 29-01-2015 22:22 ]


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Is het normaal dat als je een arduino nano aansluit via usb en tegelijkertijd hem aansluit op een +5V voeding via pin 27 (+5V) je een foutmelding krijgt op de windows computer dat het usb apparaat niet werkt? :?
+5V via pin 27 voeden is volgens arduino.cc nochthans een toegelaten optie? (ik deed dit om na te gaan of mijn probleem(zie iets hoger) het gevolg was van onvoldoende stroom...)

Acties:
  • 0 Henk 'm!

  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 17-09 20:02
GND gedeeld...?
IVM onvoldoende stroom... je bedoelt mss dat de pinnen te weinig mA leveren.. dat ga je niet oplossen daardoor.. dan moet je met transistoren werken... die je schakelt

[ Voor 84% gewijzigd door Icekiller2k6 op 30-01-2015 10:29 ]

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
de gnd is inderdaad gedeeld. De pinnen zelf zijn het probleem niet denk ik (deze schakelen enkel de optocoupler die het relais schakelt). Het relais (8stuks) zelf kan ik apart voeden

Een ander mogelijke oorzaken (de ene al onlogische dan de andere?)
- de cap van 10uF die ik tussen de gnd en de reset heb gehangen (om reset on connect) te voorkomen?
- interferentie van de 220V voedingskabel van het relais die vlak naast de kabeltjes tussen het relais en de arduino loopt
- of natuurlijk iets anders wat ik over het hoofd zie...

[ Voor 18% gewijzigd door Promy op 30-01-2015 13:02 ]


Acties:
  • 0 Henk 'm!

  • SnowDude
  • Registratie: Januari 2002
  • Laatst online: 13-09 18:52
Ook maar eens een update geven van mijn laatste projectje.

Mijn nixie klok en weersstation is bijna af. Ik ben bezig met de laatste software tweaks en heb de behuizing getekend in autocad.

De klok bestaat uit twee prints, de basis print met de Atmel, voeding, 433 MHz receiver, barometer en RTC.

Afbeeldingslocatie: http://tweakers.net/ext/f/8wRXolyyHblHNZJ8UQilXWgA/medium.jpg

Het tweede board is met de 74595 latches en de drivers voor de buizen:

Afbeeldingslocatie: http://tweakers.net/ext/f/yIVor3kRVoDwWcbla5Dx6OMu/medium.jpg

Afbeeldingslocatie: http://tweakers.net/ext/f/NRmyyKHn5mRAihVnfBUcgOYv/medium.jpg


Dit is het compleet:

Afbeeldingslocatie: http://tweakers.net/ext/f/VcCO7jSaDhWMKk4U5qZKIRsN/medium.jpg

En hier een filmpje:

All electric components run on smoke. If you let the smoke out, they won't work anymore.


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Mooi gedaan! knap hoor...

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • 0 Henk 'm!

  • Djesse8999
  • Registratie: April 2013
  • Laatst online: 16-09 19:17

Djesse8999

Houd van (T)weekend!

Nixie tubes O+

Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Promy schreef op vrijdag 30 januari 2015 @ 09:35:
Is het normaal dat als je een arduino nano aansluit via usb en tegelijkertijd hem aansluit op een +5V voeding via pin 27 (+5V) je een foutmelding krijgt op de windows computer dat het usb apparaat niet werkt? :?
+5V via pin 27 voeden is volgens arduino.cc nochthans een toegelaten optie? (ik deed dit om na te gaan of mijn probleem(zie iets hoger) het gevolg was van onvoldoende stroom...)
Voeding niet aansluiten? :P

edit:
Verlies je gewoon even de verbinding en reconnect de Nano dzan terug? Of blijft de verbinding verbroken?

Check eens of D1 niet stuk is?? Of meet eens de spanning op Vusb zonder de voeding aangesloten. En meet daarna de spanning op Vusb met de voeding aangesloten. Misschien is D1 stuk en zet je spanning op de voeding van jouw usb poort :/

[ Voor 24% gewijzigd door D-Three op 31-01-2015 07:56 ]


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Gisterennamiddag de nano eens terug aan de raspberry pi (via usbhub met rj45 verlengkit) gehangen en het relais (enkel de relais, niet de optocouplers) voeding gegeven via een aparte 5V voeding.
Wat niet stabiel was via de windows laptop is hier wel stabiel? 8)7

Deze ochtend dan de door de relais te schakelen 220V ook opnieuw aangesloten en onmiddelijk ging het mis... (na de usb kabel uitgetrokken te hebben en opnieuw in ging het wel terug goed?)
Het is wel zo dat de signaalkabeltjes tussen de arduino en het relais (dupond wires) de 220V voedingdraad kruisen (ertegenaan liggen) en dat de arduino ook ongeveer tegende 220V voedingskabel zit (zie foto)
Het geheel is gebouwd op de metalen onderplaat van een oude router (tussen de arduino en het metaal natuurlijk een plastic transparant ter isolatie.

Kan het zijn dat die 220V storing geeft? :?

@D-Three: had ik eigenlijk met verschillende nano's (ook toen ik met de esp8266 bezig was)

[ Voor 9% gewijzigd door Promy op 01-02-2015 13:14 ]


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Heb je een schema? Grounds goed verbonden? En een stalen kastje, je hebt het toch wel geaard hoop ik?

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Qua schema is het redelijk eenvoudig: digital 2 tem 9 verbonden met de ingang 1 tem 8 van het relais. Hiernaast ook 5V en gnd verbonden. De relais krijgen aparte 5v voeding (gnd doorverbonden met arduino)
Het relais bedient 8 220V signalen (via de NC).
Het kastje is niet geaard omdat er tussen het metaal en de componenten een plastic folie zit (een overhead transparant).

Voorlopig lijkt het goed te gaan, nog geen uitval sinds deze ochtend...

Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Misschien een potentiaalverschil tussen usb-gnd en en de gnd van het circuit? Ik denk dat de usb-gnd van een pc verbonden is met de aarde.

Acties:
  • 0 Henk 'm!

  • A1AD
  • Registratie: Juli 2013
  • Laatst online: 18-09 11:46
Ik heb altijd begrepen dat een float meer geheugen in gebruik neemt dan een int datatype.
Maar wanneer ik hier 1 float omzet naar een int in een sketch van 19840 bytes groot krijg ik een grote van: 20062 bytes...

Heb ik dat zo verkeert begrepen? Ben ik gek aan het worden? Spookt het hier?

Dan wil je eens iets optimaliseren :D

Afbeeldingslocatie: https://dl.dropboxusercontent.com/u/2172654/float.png

Afbeeldingslocatie: https://dl.dropboxusercontent.com/u/2172654/int.png

- Deze advertentie is geblokkeerd door Pi-Hole -


Acties:
  • 0 Henk 'm!

  • SnowDude
  • Registratie: Januari 2002
  • Laatst online: 13-09 18:52
Ik vermoed dat je de waarde ergens in een functie gebruikt. Als er voor die functie 2 versies gedefinieerd staan, 1 voor een float en 1 voor een int dan worden nu beide versies gecompiled.

All electric components run on smoke. If you let the smoke out, they won't work anymore.


Acties:
  • 0 Henk 'm!

  • A1AD
  • Registratie: Juli 2013
  • Laatst online: 18-09 11:46
SnowDude schreef op maandag 02 februari 2015 @ 11:43:
Ik vermoed dat je de waarde ergens in een functie gebruikt. Als er voor die functie 2 versies gedefinieerd staan, 1 voor een float en 1 voor een int dan worden nu beide versies gecompiled.
Klopt:
code:
1
currentWatt = (3600000 / (C * pulseTime) * 1000);


De pulsTime is uiteraard een Long. Dus ik verander currentWatt van int naar long om geheugen te besparen :+
Thx, it makes sense

- Deze advertentie is geblokkeerd door Pi-Hole -


Acties:
  • 0 Henk 'm!

  • SnowDude
  • Registratie: Januari 2002
  • Laatst online: 13-09 18:52
Heel veel mensen vergeten nog wel eens dat er veel meer dan 1 definitie is voor veel functies, kijk maar eens naar println in Print.h:

C:
1
2
3
4
5
6
7
8
9
10
11
12
println(const __FlashStringHelper *);
println(const String &s);
println(const char[]);
println(char);
println(unsigned char, int = DEC);
println(int, int = DEC);
println(unsigned int, int = DEC);
println(long, int = DEC);
println(unsigned long, int = DEC);
println(double, int = 2);
println(const Printable&);
println(void);


Er zijn 12 verschillende functies en die kunnen daardoor dus ook 12 keer gecompileerd worden als je ze alle 12 gebruikt.

All electric components run on smoke. If you let the smoke out, they won't work anymore.


Acties:
  • 0 Henk 'm!

  • Erasmo
  • Registratie: Juli 2004
  • Niet online

Erasmo

Laadpaaljager

Ik wil graag een over 1 as trackende turret aansturen, in het huidige ontwerp zit een oude ruitenwissermotor van 24V die ongeveer 1,5A trekt.

De motor zal zowel links om als rechtsom moeten draaien, dit door het omdraaien van de polariteit. Ik heb wat onderzoek gedaan op internet en de meeste shields/drivers kunnen het net niet aan qua vermogen.

Er is een labvoeding beschikbaar en het doel zal op een vaste snelheid bewegen dus dat scheelt al een hoop regelwerk.

Als ik het zo zie zullen de meeste transistors en h-bruggen het vermogen ook niet zo prettig vinden dus ik denk er over om gewoon met twee 24V relais te werken, maar weet iemand of een Arduino genoeg vermogen kan leveren om zo'n relais te bekrachtigen?

Of wellicht is er een andere oplossing die ik compleet over het hoofd zie :P

Doet iets met stroom, motors en nu ook auto's op YouTube


Acties:
  • 0 Henk 'm!

  • SnowDude
  • Registratie: Januari 2002
  • Laatst online: 13-09 18:52
Met een mosfet het relais bedienen?


Afbeeldingslocatie: http://tweakers.net/ext/f/nNC1wz4654jhzUB05IpNmma4/full.png

[ Voor 54% gewijzigd door SnowDude op 02-02-2015 16:30 ]

All electric components run on smoke. If you let the smoke out, they won't work anymore.


Acties:
  • 0 Henk 'm!

  • Erasmo
  • Registratie: Juli 2004
  • Niet online

Erasmo

Laadpaaljager

Gewoon tweetraps zeg maar :P

Doet iets met stroom, motors en nu ook auto's op YouTube


Acties:
  • 0 Henk 'm!

  • D-Three
  • Registratie: Oktober 2001
  • Laatst online: 17-09 21:08
Veel fet's kunnen perfect veel hogere stromen schakelen hoor. Maar de meeste shieldjes zijn inderdaad daar niet voor uitgerust.

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Zou het probleem van de instabiliteit van m'n arduino nano in combinatie met een 8 channel relay ermee te maken kunnen hebben dat het relais 15 a 20mA moet sinken per pin? ik verbind ze met digital 2 tem 8 (gebruik voorlopig enkel 6 relais)
Volgens dit document zou per pin 20mA mogelijk moeten zijn voor een nano (328at5V), maar sommige combinaties moeten beperkt blijven tot 100mA
Als ik het echter lees dan zou ik wel binnen de toleranties vallen? 8)7
--of zou het aan het feit kunnen liggen dat ik ook pin 9 en 10 heb verbonden met het relais en dat deze niet gedefinieerd zijn in de sketch (dus niet als output gezet) :?

[ Voor 13% gewijzigd door Promy op 05-02-2015 22:51 ]


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Hoe voed je die relais? 8 relais bekrachtigen zal al snel 500-1000mA vragen, dan heb je weinig of niets meer over met de meeste USB-voedingen.

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Ik voed de arduino via de usb poort van een powered hub en het relais via een aparte 5v voeding van 1ampere. Het probleem stelt zich ook als de relais in onbekrachtigde toestand zijn (er zijn ook maar 6 relais in gebruik) dus ik vermoed niet dat het een power issue is? Zelfs al hebben de relais onvoldoende kracht, dan zou de arduino hiervan nog niet mogen weten aangezien die een andere voeding heeft? (gnd wel verbonden natuurlijk)

[ Voor 23% gewijzigd door Promy op 05-02-2015 23:24 ]


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Is dat zo ebay bordje? Zo niet geef een link of schema van het bordje.

Hoe heb je het aangesloten? 5V van de relais moet rechtstreeks aan de voeding, anders trek je alle stroom door de arduino voltage regulator heen, dat is minder zuinig en kan voor noise zorgen die dan ook door het arduino bordje loopt.

Als het zo ebay bordje is dan zou het zonder problemen moeten werken, die doen het prima met arduino, die belasten maar paar mA per relay, er loopt wat stroom van 5v door weerstand en twee leds heen naar GPIO. 5v voeding moet echter wel voldoende zijn om relays zelf te kunnen aansturen.

Schakel ze eens allemaal een voor een in.
Meet de totale stroom eens, en meet voedingslijnen voltage of die niet dipt bij inschakelen van de relays.
Test eens met extra condensator op de vcc lijn.
--of zou het aan het feit kunnen liggen dat ik ook pin 9 en 10 heb verbonden met het relais en dat deze niet gedefinieerd zijn in de sketch (dus niet als output gezet) :?
Nee dat heeft geen effect, default state van pin is hoge impedantie(hoge complexe weerstand).

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • SnowDude
  • Registratie: Januari 2002
  • Laatst online: 13-09 18:52
mad_max234 schreef op vrijdag 06 februari 2015 @ 09:38:

Schakel ze eens allemaal een voor een in.

[...]
Precies, ga eerst eens na of het ook fout gaat als er maar 1 of twee relais worden geschakeld, dan kan je controleren of het een power probleem is. Een ongeschakeld relais zou geen effect moeten hebben op de schakeling.

[ Voor 18% gewijzigd door SnowDude op 06-02-2015 10:25 ]

All electric components run on smoke. If you let the smoke out, they won't work anymore.


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
Het is inderdaad zo'n bordje van ebay (komen allemaal op zelfde neer). Bij de uitleg stond er dat het 15 a 20mA moet kunnen sinken.
Het is wel zo dat de arduino verbonden is met een usb hub (op speciale poort met extra stroom voor het opladen van dingen) via een lange kabel (utp verlengkabel met usb-rj45 verlengsnoeren).

Ik ga eens een test doen met een externe stroomvoorziening(op de usb poort) en een aparte serial-usb adapter op de pinnen rx en tx , want ik heb de indruk dat hij de usb spanning voorneemt op andere voedingen. :? Ik had immers het relais eens niet aangesloten en het ging ook mis na een tijd...dus misschien ligt het niet aan het relais... |:(

Is het normaal dat de led op de arduino nano (half) gaat oplichten bij het aansluiten van de tx/rx en gnd pinnen (dus zonder stroom erop te zetten?)

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Dat laatste heb ik ook wel eens gezien ja, zal wel een beetje lekspanning zijn via de TX/RX lijnen.
Verder zou ik er gewoon eens een multimeter op zetten. Vanaf een volt of 3,6 zou je arduino iig gewoon stabiel moeten zijn, dus je hebt best wat ruimte. Maar zeker met zo'n lange kabel heb je natuurlijk wel grote kans op spanningsdips als er even iets geschakeld wordt of zo.

Als het goed is zit er een diode tussen de 5V lijn en de Vin, dus als de spanning op Vin ongeveer 1,2V hoger is dan de USB-spanning, zou hij automatisch de Vin moeten gaan gebruiken.

Acties:
  • 0 Henk 'm!

  • SnowDude
  • Registratie: Januari 2002
  • Laatst online: 13-09 18:52
mcDavid schreef op vrijdag 06 februari 2015 @ 22:24:
Als het goed is zit er een diode tussen de 5V lijn en de Vin, dus als de spanning op Vin ongeveer 1,2V hoger is dan de USB-spanning, zou hij automatisch de Vin moeten gaan gebruiken.
die diode is ook het verschil tussen Vin en de 5v aansluiting

All electric components run on smoke. If you let the smoke out, they won't work anymore.


Acties:
  • 0 Henk 'm!

  • Erasmo
  • Registratie: Juli 2004
  • Niet online

Erasmo

Laadpaaljager

D-Three schreef op dinsdag 03 februari 2015 @ 10:20:
Veel fet's kunnen perfect veel hogere stromen schakelen hoor. Maar de meeste shieldjes zijn inderdaad daar niet voor uitgerust.
Heb uiteindelijk maar een servo gekocht :D

Doet iets met stroom, motors en nu ook auto's op YouTube


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Promy schreef op vrijdag 06 februari 2015 @ 22:07:
Het is inderdaad zo'n bordje van ebay (komen allemaal op zelfde neer). Bij de uitleg stond er dat het 15 a 20mA moet kunnen sinken.
Het is wel zo dat de arduino verbonden is met een usb hub (op speciale poort met extra stroom voor het opladen van dingen) via een lange kabel (utp verlengkabel met usb-rj45 verlengsnoeren).
Dat sinken slaat op de signalen niet op de voeding van de relais zelf, relais zal zelf ook nog stroom nodig hebben, dat is source en geen sink. Deze bordjes maken gebruik van srd-05vdc-sl-c relays.

Per ingeschakelde relays word er zo +-90mA(of 70mA) getrokken.
www.datasheet-pdf.com/datasheetdownload.php?id=720556
Ik ga eens een test doen met een externe stroomvoorziening(op de usb poort) en een aparte serial-usb adapter op de pinnen rx en tx , want ik heb de indruk dat hij de usb spanning voorneemt op andere voedingen. :? Ik had immers het relais eens niet aangesloten en het ging ook mis na een tijd...dus misschien ligt het niet aan het relais... |:(
Hoe bedoel je voorneemt? Normale arduino met externe voeding aansluiting zal zodra je externe voedig aansluit met hogere voltage dan 5.5v zal mosfet gaan geleiden en VUSB alsuiten en externe voeding zal dan het circuit voeden. Geen idee of nano dat ook heeft, zal je het schema even moeten nakijken van de nano.

Maar is het niet handiger om de relays op eigen voeding aan te sluiten. Dan moet je de jumper eraf halen, die tussen VCC en VCC JD zit, dat is 3 pin header, je kan de externe voeding op GND en VCC aansluiten, VCC JD(middelste pin) niet aansluiten. Bij de andere pin headre(10p) sluit je gewoon de VCC en GND aan van de arduino, dan zitten de beide(arduino en de externe voeding van de relais) GND aan elkaar en VCC niet, externe voeding voed dan de relais spoelen en arduino voed de opto coupler en led.
s het normaal dat de led op de arduino nano (half) gaat oplichten bij het aansluiten van de tx/rx en gnd pinnen (dus zonder stroom erop te zetten?)
Als je USB printje wel heb aangesloten op de usb en dus stroom staat op TX pin, TX is immers actief high en er kan beetje stroom leveren worden door TX pin, niet veel maar zat om paar leds zwak op te lichten of atmega niet uit te laten gaan als je voeding eruit trekt.

Zo kan zijn dat als usb van nano eruit trekt wanneer je de usb->serial printje er nog aan heb hangen dat arduino gewoon lekker doordraait, zal instabiel zijn uiteraard. Zo heb ik wel eens gehad dat ik dacht dat ik een reset had uitgevoerd door stroom eraf te halen, maar bleef toch nog raar doen, bleek die helemaal niet uit te zijn geweest, gevoed door I/O pin. |:(

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 21:40
@mad_max234: tnx voor de reply. Ik had het relais inderdaad al apart gevoed zoals jij beschrijft. Ik had de arduino gevoed door de usb aan te sluiten EN op de 5V pin (en gnd) een usb voeding aan te sluiten( van een telefoon). Zo was het niet stabiel.
Nog eens wat verder wachten of de huidige setup stabiel is (ging mis na een 20tal uur...)
Pagina: 1 ... 67 ... 96 Laatste