Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
@kitao
Is duidelijk SPI en geen i2c.

Je hebt geen SDA, pin10 is gebruikt voor CS, oftewel chip select pin(ook wel slave select pin genoemd).

SPI heeft sck, mosi en miso, zit altijd op pin13, 12 en 11. CS mag op elke pin, kan je dan ook aanpassen zoals je in de code ziet.
C:
1
const int chipSelectPin = 10;

[ Voor 7% gewijzigd door mad_max234 op 28-03-2014 12:06 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Zie mijn edit
Ik wil binnenkort 2x16 parallel lcd en de rfid in gebruik nemen. Dat wordt aardig codeknarsen dan }:|
plus, kan je dan gewoon miso/mosi doorverbinden naar dat lcd ?

/edit @Max hierboven
Ja, ok, dat is wel zo. Maar op het rfid printje heten die aansluitingen wel SDA en SCK. Dus daarom dacht ik dat die op A4/5 moesten wat niet zo blijkt te zijn.
Zonder deze site was het me voorlopig niet gelukt de rfid aan de praat te krijgen wrs.
http://projects.schneidr.de/2013/05/mfrc522-and-arduino/

/edit2
Verwijderd schreef op vrijdag 28 maart 2014 @ 12:04:
nee ik heb zo'n ding niet .. zodra je er meer dan 1 slot mee gaat bedienen wordt het interessant.. kan je ze syncen ?.. 1 keer code invoeren en ze werken op iedere deur.. of in bepaalde zones, leuk speelgoed lijkt me
Lijkt mij als je 2 van die dingen koopt voor slot A en slot B en je zet voor allebei dezelfde sketch erin dat je dan gewoon met 1 kaart beide sloten kunt openen. Of juist weigeren of slot A wel maar niet B.
(Ik neem aan dat je dat met syncen bedoelde ?)
Ik vind dit ook wel geinig spul, zeker de moeite om wat meer toepassingen ervoor te verzinnen.
De vraag is dan wel of het qua bedrading allemaal op ene uno past. Maar daar was toch juist de SS voor ?

[ Voor 114% gewijzigd door kitao op 28-03-2014 12:46 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Hmm, vanwege de moeilijkheidsgraad denk ik dat ik toch maar een softwareserial 2x16 lcd'tje ga toepassen.
Dan heb ik aan 1 pinnetje genoeg Afbeeldingslocatie: http://fordmondeoclub.nl/phpBB3/images/smilies/whistle.gif
Waarom moeilijk doen >:)

Acties:
  • 0 Henk 'm!

Verwijderd

Icekiller2k6 schreef op vrijdag 28 maart 2014 @ 09:42:
Iemand dit al gebruikt:
http://www.icstation.com/...ucts_id=1845#.UzU11Kh5PAk
Lijkt me dat je voor de prijs niet echt zelf kunt maken... zoals zovaak is :)
ja die werken wel hoor

* update.. gelijk even aan mijn nieuwe 'mobiele' lab gehangen :+
[YouTube: https://www.youtube.com/watch?v=au1LiZF0mUQ&feature=youtu.be]

ditzelfde TFT'je aangesloten op een UNO of nano werkt sneller !

Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
De ATMEGA32 heeft idd 4 PWM kanalen nl: OC0(PB3) OC1A(PD5) OC1B(PD4) en OC2(PD7)

Als ik de registers direct aanspreek zoals Mad_Max idd aangeeft, dan werkt de PWM naar behoren, maar als ik het via de 'Arduino functie' analogWrite wil doen, dan gaat het ledje wat standaard aan die uitgang zit alleen aan(Eigenlijk gaat de poort uit, maar omdat de led aan 5V hangt gaat ie branden ;) )

Nu heb ik al wat verder gekeken en nu zie ik dus nergens waar de TCNTx en de TCCRx registers worden gezet.
Als ik bijvoorbeeld OC0(PB3) wil gebruiken als PWM en ik zet netjes TCNT0 en TCCR0 configureer en ik zet een waarde in OCR0 dan krijg ik netjes een PWM signaal.

Maar, zoals ik eerder schreef, ik zie alleen deze code als ik de functie analogWrite() opzoek in wiring_analog.c:


#if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__)
case TIMER0A:
// connect pwm to pin on timer 0
sbi(TCCR0, COM00);
OCR0 = val; // set pwm duty
break;
#endif


Grappig dat je soms heel vaak over dingen heen kan lezen. Ik zie het probleem. Als ik de data sheet lees bij timer/counter0 dan zie ik dat de combinatie COM00 = 1 | COM01 = 0 reserved is bij PWM functies...

wss als ik er dit van maak:

#if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__)
case TIMER0A:
// connect pwm to pin on timer 0
sbi(TCCR0, COM01);
OCR0 = val; // set pwm duty
break;
#endif

dat ie het dan wel doet.

Ga ik ff proberen.

EDIT
Hmmm, ik heb het nu werkend via de analogWrite() functie, maar ik vraag me wel af hoe het bij de andere kan werken.
C:
1
2
3
4
5
6
7
8
            #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__)
            case TIMER0A:
                // connect pwm to pin on timer 0
                //sbi(TCCR0, COM01);
                TCCR0 |= (1 << COM01) | (1 << CS00) | (1<<WGM00) | (1<<WGM01);
                OCR0 = val; // set pwm duty
                break;
            #endif


dat is hoe ik het nu aan de praat heb gekregen, maar dat is het dus, ik zie nergens waar de prescaler gekoppeld wordt in de Arduino functie, dus ik snap op dit moment ook ff niet waar de koppeling precies zit bij de 'echte' Arduino's. Daar moet de prescaler ook gezet worden en dat zie ik nergens gebeuren...
Dus daarom snap ik het niet helemaal...

[ Voor 20% gewijzigd door Vuikie op 28-03-2014 15:19 ]


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Had het kunnen weten dat pb7 de andere output is, logisch want dat is altijd zo, staat niet op de tekening vermeld, slordig. Via pin_arduino.h had je de twee timers gewoon kunnen toewijzen.

Prescaler staat toch gewoon in je code, CS00. ;)
CS staat voor clock select bit, CS00, CS01 en CS11
Bit 2:0 van de register TCCR0.

Zie pagina82 van de datasheet, daar staat de tabel.

Edit/
In wiring.c in core file map staan de prescale instellingen.
https://github.com/arduin...no/cores/arduino/wiring.c

[ Voor 29% gewijzigd door mad_max234 op 28-03-2014 16:34 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
Juist, bedankt voor het wijzen naar wiring.c Daar had ik dus niet gekeken, maar daar zit dus ook de fout, in de wiring.c word alleen de WGM00 en de WGM01 gezet voor de ATMega 8 en 168. De ATMega32 is een wat oudere AVR, als WGM00 en WGM01 0 blijven dan is Timer0 gewoon een counter.

Alle timers had ik al netjes toegewezen in de pin_arduino.h en idd de CS00 had ik toegewezen in mijn gewijzigde code van wiring_analog.c

Maar nu zie ik dus waar het fout gaat.

In wiring.c heb ik dus het volgende aangepast:
C:
1
2
3
4
#if defined(TCCR0A) && defined(WGM01)
    sbi(TCCR0A, WGM01);
    sbi(TCCR0A, WGM00);
#endif  

naar
C:
1
2
3
4
5
6
7
#if defined(TCCR0A) && defined(WGM01)
    sbi(TCCR0A, WGM01);
    sbi(TCCR0A, WGM00);
#elif defined(TCCR0) && defined(WGM01)
    sbi(TCCR0, WGM01);
    sbi(TCCR0, WGM00);
#endif  


en wiring_analog.c heb ik terug gebouwd naar origineel en nu werkt ie zoals het moet.

[ Voor 33% gewijzigd door Vuikie op 28-03-2014 16:57 ]


Acties:
  • 0 Henk 'm!

Verwijderd

heel gedoe om arduino compatibel te worden he ;)

Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
Verwijderd schreef op vrijdag 28 maart 2014 @ 17:03:
heel gedoe om arduino compatibel te worden he ;)
Ja, maar ook wel weer heel leuk, zo kom je wel te weten hoe alles nu precies werkt als je tegen een probleem aanloopt...

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Dit is toch geen gedoe, beetje debuggen is gewoon onderdeel van de hobby, kunnen we beter stoppen als dit al te veel is. :D :P

@Vuikie
Atmega32 zit eral in, of in ieder geval de registers, je hoeft niks aan wiring.c te veranderen, dan ga je arduino min of meer slopen en haal je de compatibiliteit eruit. (edit: Zie je edit net, als je het zo doet behoud je wel de compatibiliteit, maar ook deze aanpassing zou niet nodig moeten te zijn)

Via pin_arduino.h voeg je avr toe, en in board.txt geef je bord defines op, zodat juist instellingen word gedefinieerd.
http://hardwarefun.com/tu...duino-avr-microcontroller

Edit./
Ik heb via opti bootloader board.txt namelijk de atmega32 er gewoon bijstaan, en uiteraard niks aangepast aan de core files.

Je moet versie 5.0a hebben.
"ATmega32 and ATmega1284 support (including multiple uarts)"

http://code.google.com/p/optiboot/


Gebruikt gewoon de arduino pin_mapping
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
##############################################################

atmega32o.name=[Optiboot] ATmega32 based board
atmega32o.upload.protocol=arduino
atmega32o.upload.maximum_size=32256
atmega32o.upload.speed=115200
atmega32o.bootloader.low_fuses=0xff
atmega32o.bootloader.high_fuses=0xde
atmega32o.bootloader.path=optiboot
atmega32o.bootloader.file=optiboot_atmega32.hex
atmega32o.bootloader.unlock_bits=0x3F
atmega32o.bootloader.lock_bits=0x0F
atmega32o.build.mcu=atmega32
atmega32o.build.f_cpu=16000000L
atmega32o.build.core=arduino:arduino
atmega32o.build.variant=arduino:standard

##############################################################


Edit/
Atmega128 heeft dezelfde registers, TCCR0 register is bit voor bit hetzelfde, en die zit er standaard al in de 1.0.x arduino verwerkt. Er staan ook al defines in core files van de arduino, in wiring.c staat de TCCR0 register ook gewoon.

[ Voor 66% gewijzigd door mad_max234 op 28-03-2014 17:53 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

Verwijderd

Vuikie schreef op vrijdag 28 maart 2014 @ 17:09:
[...]


Ja, maar ook wel weer heel leuk, zo kom je wel te weten hoe alles nu precies werkt als je tegen een probleem aanloopt...
is het nou dit printje ? .. en waar komt dat oorspronkelijk uit dan .. lijkt me wel handig zo met al die aansluitingen.

Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
@Mad_Max Probeer timer0 dan eens aan de praat te krijgen via de analogWrite() functie als je wil? De rest van de funties werken, zover ik ze geprobeerd heb, wel.
Op het boardje dat ik heb zit OC0(PB3) toevallig aan een ledje en die wilde ik aan de praat zien te krijgen. Zover ik kan zien zullen de andere 3 timers wel gewoon goed werken(Nog niet getest, maar eens doen op een breadboardje als ik wat meer tijd heb ;) ). Het zit hem volgens mij in het feit dat WGM00 en WGM01 bits niet werden gezet, timer/counter0 staat dan in counter mode, deze worden alleen in de TCCR0A register gezet, maar op de mega32 heb je alleen de TCCR0 register. Timer/counter1 heeft wel een a en b timer/counter. Je hebt wel gelijk het zou moeten werken, maar het deed het niet. dus vandaar dat ik ging zoeken.

@Borroz Ja dat is het boardje, alleen die jij hebt gevonden is zelfs iets beter, omdat daar een normale ISP connector op zit. degene die ik heb zit een vreemde ISP connector op(Zie mijn DX.com link)
Het mooie van dit boardje is dat je hem direct op de USB kan aansluiten en de code kan uploaden itt de extra chip die de Arduino nodig heeft en eigenlijk een veredelde com poort is(Behalve dan bij de UNO waar een ATMega32u2 chip op zit). De USB is wel een software oplossing, dus geen hardware USB als bij de U2 versies van verschillende micro's die Atmel nu heeft.

Waar hij uit komt? Het is gewoon een soort tegenhanger/eerdere versie van een Arduino/breakout board(Wat de Arduino in feite ook is) om mee te 'prototypen'. Zoals ze dat deftig noemen ;)

[ Voor 11% gewijzigd door Vuikie op 28-03-2014 18:36 ]


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Ik zou je gelijk helpen als ik een atmega16, 32 of 128 had gehad, maar heb helaas alleen moderne mega's uit de atmega8x serie.

atmega128 zit erin, en die heeft dezelfde registers, heb datasheets met elkaar vergeleken en zijn 1 op 1 gelijk, als de 128 kan werken met timer0 dan moet die ook werken op atmega32. 128 heeft alleen wat meer pinnen en timers, maar die hoef je niet in pin_arduino toe te wijzen, zal arduino niks uitmaken.

De outputs zitten op dezelfde pinnen, er is dus echt niks wat roet in eten kan gooien.

WGM00 en WGM01 van de atmega32 zitten in dezelfde register en dezelfde bits als de atmega128. WGM moet altijd ingesteld worden, je moet immers opgegeven wat de waveform generator moet doen, bijvoorbeeld fast pwm.

WGM00 en WGM01 beide op 0 dan zet je de timer in "normal" mode, dat is altijd de default instelling, ook bij atmega328p en ook bij atmega128. Je wilt als je pwm wilt WGM00 op 0 en WGM01 op 1, fast pwm mode. Dan zal er output zijn op de output compare pin(OC0 of een van de andere).

Edit/
Ik zou bijna atmeg32 kopen om het uit te proberen. :P

Edit/
Ik heb wiring.c code nog eens doorgelezen, en zie inderdaad nergens WGM gezet worden voor TCCR0, zo op eerst oog. Ik denk dat je gelijk hebt, wel raar want dat zou betekenen dat voor atmega128 je maar 4 pwm hebt ipv de 6 die beschikbaar zijn. Wellicht zie ik iets over het hoofd.

[ Voor 15% gewijzigd door mad_max234 op 28-03-2014 19:20 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
Ik heb het gevonden!
Timer0 wordt gebruikt voor de millis() functie en de delay() functie maakt weer gebruik van de millis() functie.De ATMega32 en ATMega128 kunnen timer0 dus niet gebruiken voor hun PWM functie zonder dat millis() niet meer werkt. De ATMega128 wordt ook niet gebruikt voor de Arduino mega 128, dit is de ATMega1280(Om deze reden heet de nieuwe Arduino mega2560 om verwarring te voorkomen :D ).
De ATMega1280 heeft wel een timer/counter0 a/b en dus een TCCR0A. De ATMega32 en de ATMega128 liggen dus buiten de scoop van de Arduino IDE en daarom word de TCCR0 ook niet geinitialiseerd als PWM, maar blijft deze een 'gewone' timer om millis() in tact te houden ;)

[ Voor 6% gewijzigd door Vuikie op 28-03-2014 21:45 ]


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Atmega128 word ook gedefinieerd net als de atmega1280, beide staan erin.

Regel 205
C:
1
2
3
4
5
6
7
#if defined(__AVR_ATmega128__)
// CPU specific: different values for the ATmega128
sbi(TCCR0, CS02);
#elif defined(TCCR0) && defined(CS01) && defined(CS00)
    // this combination is for the standard atmega8
    sbi(TCCR0, CS01);
    sbi(TCCR0, CS00);


En op regel 211 staat de 1280.

C:
1
2
3
4
5
6
7
8
#elif defined(TCCR0B) && defined(CS01) && defined(CS00)
// this combination is for the standard 168/328/1280/2560
sbi(TCCR0B, CS01);
sbi(TCCR0B, CS00);
#elif defined(TCCR0A) && defined(CS01) && defined(CS00)
// this combination is for the __AVR_ATmega645__ series
sbi(TCCR0A, CS01);
sbi(TCCR0A, CS00);



De 1280 heeft TCCR0A en TCCR0B registers en geen TCCR0 register, is dus echt voor de 128(en verwante, zoals atmega32, 16).

https://github.com/arduin...no/cores/arduino/wiring.c

Edit/
Nieuwe arduino mega heet zo omdat die gebruik maakt van de atmega2560 gebruikt, niet omdat het verwarrend was. :)

Welke versie van arduino IDE gebruik je?

[ Voor 16% gewijzigd door mad_max234 op 28-03-2014 22:00 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
Klopt, maar hier word alleen doorheen gelopen als de ATmega128 is gedefinieerd, niet de ATmega32 en alleen de CS02 word gezet, wat de prescaler op 64 zet voor de ATmega128. CS00 en CS01 worden gezet voor de Atmega8 en dus ook de ATmega32(Die heeft ook de TCCR0), wat ook weer een prescaler van 64 is. Dus gaat mijn vermoeden van het gebruik van timer0 voor de millis() functie gaat nog steeds op. Dan hoeven namelijk WGM00 en WGM01, voor beide chips, niet gezet te worden.

*edit*

En nog een clue dat dit klopt. De originele Arduino, die met de ATmega8, heeft maar 3 PWM kanalen, nl: OC1a, OC1b en OC2, geen OC0 en dus geen WGM00 en WGM01, dus was het logisch om timer0 voor echte timer functies te gebruik ipv PWM functies :)

[ Voor 51% gewijzigd door Vuikie op 28-03-2014 22:15 ]


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Atmega128 en 32 delen dezelfde registers en pinnen, natuurlijk heeft de atmega128 meer timers en meer pinnen maar dat maakt in dit geval niks uit. Atmega168, 328p., 1280 delen ook dezelfde instellen, dat kan atmega32 en 128 ook, 32 en 128 komen uit dezelfde serie.

En millis en delay even niet aan gedacht, je moet die op 64 prescale laten staan anders werkt millis niet juist meer, die zit bij 328p arduino op TCCR0B, je levert ook 1 pwm in bij 328p, of je moet millis of delay niet gebruiken dan kan je gewoon alle 6 de pwm gebruiken.

Nou dan werkt dus eigenlijk alles al goed voordat je begon met zoeken waarom pwm het niet deed, die pwm behoorde het dus niet te doen omdat die al in gebruik is als "normal" counter voor millis en delay functie, en behoord dus ook niet gezet te worden, WGM moest dus op 0 staan. :D

betekend dus ook dat atmega128 en 32 inderdaad gewoon werken op versie 1.5, heb ook paar oudere wiring.c bekeken en stond nog geen atmega128 in.

[ Voor 12% gewijzigd door mad_max234 op 28-03-2014 22:18 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
mad_max234 schreef op vrijdag 28 maart 2014 @ 22:15:
Atmega128 en 32 delen dezelfde registers en pinnen, natuurlijk heeft de atmega128 meer timers en meer pinnen maar dat maakt in dit geval niks uit. Atmega168, 328p., 1280 delen ook dezelfde instellen, dat kan atmega32 en 128 ook, 32 en 128 komen uit dezelfde serie.

En millis en delay even niet aan gedacht, je moet die op 64 prescale laten staan anders werkt millis niet juist meer, die zit bij 328p arduino op TCCR0B, je levert ook 1 pwm in bij 328p, of je moet millis of delay niet gebruiken dan kan je gewoon alle 6 de pwm gebruiken.

Nou dan werkt dus eigenlijk alles al goed voordat je begon met zoeken waarom pwm het niet deed, die pwm behoorde het dus niet te doen, en behoord dus ook niet gezet te worden, WGM moest dus op 0 staan. :D

betekend dus ook dat atmega128 en 32 inderdaad gewoon werken op versie 1.5, heb ook paar oudere wiring.c bekeken en stond nog geen atmega128 in.
IDD en daarom vind ik dit dus leuk, nu snap je dus hoe dingen werken en waarom sommige dingen werken zoals ze werken. ;)

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Ik ook, daarom was ik ook zo nieuwsgierig, ik jaag graag achter probleempjes aan. Is gewoon leuke puzzel, en meestal vallen alle stukjes wel op zijn plek. :)

Als je niet over millis was begonnen had ik er voorlopig nog niet aan gedacht, zat helemaal niet in die richting te denken.

Edit
Die "je levert ook 1 pwm in" moet eigenlijk 1 timer zijn, even verkeerd neergezet. Maar je snap het vast wel wat ik bedoelde. :)

[ Voor 19% gewijzigd door mad_max234 op 28-03-2014 22:26 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 19:57
mad_max234 schreef op vrijdag 28 maart 2014 @ 22:22:
Ik ook, daarom was ik ook zo nieuwsgierig, ik jaag graag achter probleempjes aan. Is gewoon leuke puzzel, en meestal vallen alle stukjes wel op zijn plek. :)

Als je niet over millis was begonnen had ik er voorlopig nog niet aan gedacht, zat helemaal niet in die richting te denken.

Edit
Die "je levert ook 1 pwm in" moet eigenlijk 1 timer zijn, even verkeerd neergezet. Maar je snap het vast wel wat ik bedoelde. :)
Zo zie je maar weer, dat 2 meer zien als 1, je helpt elkaar de goede richting in. En zoals jij ergens eerder al zei, in software kan je nooit echt iets slopen als je niet iets HEEL stoms doet. Ik had ook netjes de 2 files voordat ik ze aangepast had gesaved als .old, deze weer terug gezet en voilá, alles werkt weer zoals het hoort ;)

Ik zal er alleen aan moeten wennen dat ik OC0 niet kan gebruiken als PWM :D

In elk geval, iedereen bedankt voor het meedenken. d:)b

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Komt de atmega8 ook uit dezelfde serie als de atmega32 en 128? Ik had toen nog geen arduino, heb die serie nog nooit gebruikt, zag ook nooit geen rede om atmega8 te kopen ipv atmega88 bijvoorbeeld.

Overigens bevat de arduino IDE software wel meer AVR;s waar geen officieel arduino bord van bestaat, zoals de ATmega645.

En in arduino.h staan attiny's, maar ik weet nog niet helemaal of die al echt ondersetunt worden, mis nogal wat. En voorheen moest je aantal core files aanpassen om voordat Arduino IDE werkte met attiny's, zie nergens die aanpassingen in de huidige core files.
C:
1
#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)

https://github.com/arduin...o/cores/arduino/Arduino.h

Edit/
Wellicht interessant.
http://forum.arduino.cc/index.php/topic,24336.0.html

[ Voor 4% gewijzigd door mad_max234 op 28-03-2014 22:50 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
OcGuru schreef op woensdag 26 maart 2014 @ 22:07:
Net anderhalf uur aan het kijken geweest waarom de d18b20 niet werkte. Wat blijkt ik had hem op pin 12 aangesloten. Dat is de MISO van SPI. En aangezien ik SPI gebruik om mn led matrix met data vol te pompen gaat dat dus niet werken.
kitao schreef op donderdag 27 maart 2014 @ 08:39:
Goed dat je het even doorgeeft OcGuru, toevallig was ik een beetje aan het uitzoeken het verschil tussen I2C en SPI. Nu je het zegt, bij een lcd wordt vaak 11 en 12 gebruikt, resp Mosi en Miso.
http://arduino-info.wikispaces.com/QuickRef
Pin 2,3,4,5 of 5,6,7,8 zijn dan meestal voor de andere 4 benodigde draadjes op het lcd.
Vervolgens kwam deze post over de RFID522 : kitao in "[Discussie] Arduino-topic"
Gevolgd door deze opmerking :
kitao schreef op vrijdag 28 maart 2014 @ 11:34:
Als ik nu ipv op de ser.mon. wil afdrukken maar tegelijkertijd op een parallel HD44780 dan heb ik dus 2x miso mosi nodig. (1x voor rfid en 1x voor lcd) ?
Dat blijkt niet zo te zijn. Net getest en LiquidCrystal lcd(7, 6, 9, 4, 3, 2); werkt even goed. Excuus als ik hiermee mensen in verwarring heb gebracht. Blijkt dat Miso/Mosi hier niets mee van doen heeft. Gelukkig maar want nu kon ik de RFID combineren met eerst een seriële HD44780 maar ook met een parallele.
Uitganscodes voor de paralelle uitvoering :
http://www.grantgibson.co...2012/04/ggrfid_en_ino.txt en deze http://arduino.cc/en/Tutorial/LiquidCrystal
Dit combineren tot :
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
/* 
 MFRC522--------------ARDUINO
 SDA----------------- 10
 SCK------------------13
 MOSI-----------------11
 MISO-----------------12
 IRQ -----------------NC
 GND------------------GND
 RST------------------5
 3.3V-----------------3V3
 http://gathering.tweakers.net/forum/list_message/42001745#42001745
 HD44780 AANGESLOTEN ALS VOLGT : LiquidCrystal lcd(7, 6, 9, 4, 3, 2);
 http://arduino.cc/en/Tutorial/LiquidCrystal
 */
// the sensor communicates using SPI, so include the library:
#include <SPI.h>
#define uchar   unsigned char
#define uint    unsigned int
//Maximum length of the array
#define MAX_LEN 16
/////////////////////////////////////////////////////////////////////
//set the pin
/////////////////////////////////////////////////////////////////////
const int chipSelectPin = 10;
const int NRSTPD = 5;
//MF522 Command word
#define PCD_IDLE              0x00               //NO action; Cancel the current command
// ENORM VEEL MEER VAN DEZE BLABLA
  {
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xff,0x07,0x80,0x69, 0x19,0x33,0x07,0x15,0x34,0x14    }
  ,
}; // EINDE BLABLA GEDEELTE
//@@@@@@@@@@@@@@@@@@@     BEGIN PLAKGEDEELTE PARALELLE LCD HD44780 NO. 1
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 6, 9, 4, 3, 2);
//@@@@@@@@@@@@@@@@@@@       EINDE PLAKGEDEELTE PARALLEL LCD HD44780 NO. 1

void setup() {   

  Serial.begin(9600);       // RFID reader SOUT pin connected to Serial RX pin at 2400bps 

  //@@@@@@@@@@@@@@@@@@@     BEGIN PLAKGEDEELTE PARALELLE LCD HD44780 NO. 2
  lcd.begin(16, 2);
  //@@@@@@@@@@@@@@@@@@@        EINDE PLAKGEDEELTE PARALLEL LCD HD44780  NO. 2
  // start the SPI library:
  SPI.begin();

  pinMode(chipSelectPin,OUTPUT);             // Set digital pin 10 as OUTPUT to connect it to the RFID /ENABLE pin 
  digitalWrite(chipSelectPin, LOW);          // Activate the RFID reader
  pinMode(NRSTPD,OUTPUT);               // Set digital pin 10 , Not Reset and Power-down
  digitalWrite(NRSTPD, HIGH);

  MFRC522_Init();   
}

void loop()
{
  uchar i,tmp, checksum1;
  uchar status;
  uchar str[MAX_LEN];
  uchar RC_size;
  uchar blockAddr;  //Selection operation block address 0 to 63
  String mynum = "";
  //Find cards, return card type
  status = MFRC522_Request(PICC_REQIDL, str);   
  if (status == MI_OK)
  {
    Serial.println("Card detected");
  }
  //Anti-collision, return card serial number 4 bytes
  status = MFRC522_Anticoll(str);
  memcpy(serNum, str, 5);
  if (status == MI_OK)
  {
    checksum1 = serNum[0] ^ serNum[1] ^ serNum[2] ^ serNum[3];
    Serial.println("The card's number is  : ");
    Serial.print(serNum[0]);
    Serial.println(" ");    
    // Should really check all pairs, but for now we'll just use the first
    if(serNum[0] == 224) {
      Serial.println("Hello Grant");
      Serial.println(" ");
      //@@@@@@@@@@@@@@@@@@      BEGIN PLAKGEDEELTE PARALELLE LCD HD44780 NO. 3 
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Hello Grant!");      
      //@@@@@@@@@@@@@@@@@@       EINDE PLAKGEDEELTE PARALLEL LCD HD44780  NO. 3
    } 
    else if(serNum[0] == 227) {
      Serial.println("Hello David");
      Serial.println(" ");
      //@@@@@@@@@@@@@@@@@@    BEGIN PLAKGEDEELTE PARALELLE LCD HD44780 NO. 4 
       lcd.clear();
       lcd.setCursor(0, 0);
       lcd.print("Hello David!");
      //@@@@@@@@@@@@@@@@@@       EINDE PLAKGEDEELTE PARALLEL LCD HD44780  NO. 4
    }
    delay(1000);
  }
  MFRC522_Halt();           //Command card into hibernation           
}     // @@@@@@@@@@@@@@@   EINDE LOOP GEDEELTE
 
   // EN NOG EEN BERG BLABLA   

Aanvankelijk wat zitten modderen met waar nu precies de LCD gedeclareerd moest worden zowel boven als in de setup. Verplicht plaatje:
Afbeeldingslocatie: http://s17.postimg.org/mxwsqr2qz/RFID522_004.jpg Afbeeldingslocatie: http://s15.postimg.org/9c9rsid5z/RFID_PARALLEL_LCD.jpg
Aan de ene kant ben ik dus blij dat de opstelling draait maar aan de andere kant is hiermee mijn begrip van miso/mosi en het gebruik van slave select bij meerdere apparaten die anders met elkaar in conflict zouden komen niet toegenomen. Ik wou ook nog proberen om de rfid op andere pinnen als 11 en 12 aan te sluiten maar de code is mij te abstract om terug te vinden waar die pinnen precies gedeclareerd worden. Geen idee dus of dat zou werken. Zoekfunctie door de code op 'trefwoord" 12 gaf enkel 5x dit soort resultaten:
#define TxModeReg 0x12
#define Reserved12 0x1B
Iemand die weet of de rfid zonder die pinnen kan draaien ?
/Edit: dit artikel gevonden, wordt al stukje duidelijker http://tronixstuff.com/20...-arduino-and-the-spi-bus/

[ Voor 6% gewijzigd door kitao op 29-03-2014 07:07 ]


Acties:
  • 0 Henk 'm!

Verwijderd

leuk en zo zie je dat je kennis van het een met het andere kan gaan combineren.
maar uh ik kijk wel eens naar de tijd wanneer je iets post.. knutsel jij s'nachts ;)

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Ik programmeer/knutsel ook wel eens in de nacht, ben wel eens opgestaan omdat niet meer kon slapen van enthousiasme omdat ik een oplossing had gevonden/bedacht voor het probleem. :D

Edit/
@kitao
SPI is hardwarematig, zit dus vast aan arduino pin 13, 12 en 11, dat zijn vaste pinnen, SPI apparaten kunnen dus alleen maar op die drie pinnen.

Heb jij die pin omschrijving zelf geschreven?

WTF doet SDA ertussen? In je code word pin10 gebruikt voor CS, SDA komt niet voor in je code, dat is onderdeel van i2c bus en zover ik kan zien word dat niet gebruikt, en SDA zit altijd vast aan de A4 pin.
In jou geval is pin10 CS(ook wel SS genoemd) en geen SDA. :)

CS staat voor Chip Select
SS staat voor Slave Select

Betekend hetzelfde.

[ Voor 66% gewijzigd door mad_max234 op 29-03-2014 12:13 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

Verwijderd

ja.. en wie is die 'Grant' :*)

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Denk dat mythbusters ermee aan de slag is geweest, en dat Grant zijn naam is vergeten te wissen. :D

Edit/
http://www.collective-evo...to-talk-about-rfid-chips/

[ Voor 60% gewijzigd door mad_max234 op 29-03-2014 12:36 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Ik ben soms ook wel enthousiast maar het zijn meer naweeën van de onregelmatige diensten die ik liep, mijn bioklokje is beetje gammel af en toe.

@Max, wederom bedankt voor de uitleg. Was achteraf gezien overbodige vraag. Zo gauw je dus dit tegenkomt #include <SPI.h> dan zit je meteen vast aan de miso/mosi pinnen, klok en ss.
Over dat SDA,SCA dat had ik eigenlijk al eerder geschreven, zo staat het op de rfid print. Die pinomschrijving heb ik idd zelf in de code gezet met als voorbeeld een eerder gelinkte site. (die volgt zometeen)
http://projects.schneidr.de/2013/05/mfrc522-and-arduino/
SDA op rfid-print zit op pin 10 uno en in de code wordt die gebruikt als CS: const int chipSelectPin = 10;

Ben nu deze torial aan het volgen : http://tronixstuff.com/20...-arduino-and-the-spi-bus/
Daar wordt een rheostat MCP4162 toegepast. Kost op ebay maar liefst 25 dollar !!! Conrad heeft geen dip, digikey, farnell, mouser allemaal tig euro verz. kosten. Chipje kost normaal nog geen euro.
Ben nu aan het kijken of het met een AD5220 gaat lukken maar dat wordt geen succes vrees ik. :/

[ Voor 5% gewijzigd door kitao op 29-03-2014 12:45 ]


Acties:
  • 0 Henk 'm!

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

C.44

TurboCharged Supra Driver

RS heeft ze ook, kosten dan nog geen euro per stuk maar je moet ze wel per 2 kopen.
http://nl.rs-online.com/web/p/products/7239983/

Verzendkosten ongeveer 5 euro.

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!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Helaas, dan heb je een KvK-no. voor nodig }:|
Juist door dit soort grappen ben ik met meerdere dingen bezig zodat niet alles stil valt als onderdeeltje X ontbreekt.
Kreeg gisteren 5 stuks 74HC4066 binnen en vanmorgen klokje mee gemaakt volgens dit schema:
Afbeeldingslocatie: http://s30.postimg.org/llf8bh3cd/example12p2schematic1.jpg
Voordat ik er aan begon had ik al een fout gezien, de onderste 595 zit pin 8/13 aan 5V én aan Gnd.
Pin 10/16 moeten aan 5V. Dus alles heel nauwkeurig opgebouwd en tadá ..... fail.
Chip-gedeelte afgebroken en weer geprobeerd. Blijkt linksboven de 4066 niet met pin 7 aan Gnd te zijn getekend.
Maar als je die kerel een berichtje stuurt van 'er zit een foutje' dan wordt je post verwijderd. Ondertussen vraagt die 265 dollar voor een instructie.
John Boxall says:
April 27, 2013 at 10:50 am
Try http://arduino.cc/forum/index.php/topic,63655.0.html. If you actually want me to spend the time to write a custom tutorial, please send a money order for $264 to John Boxall, PO Box 5435 Clayton 3168. I’ll write it up and send you a tax invoice.
http://tronixstuff.com/20...-arduino-and-the-spi-bus/ :P
Toch... ik hoef er niks voor te betalen en beetje debuggen hoort erbij, snap alleen niet dat er nooit wat gecorrigeerd wordt. Dit is het resultaat, best leuk geworden
Afbeeldingslocatie: http://s28.postimg.org/4jbboyomh/TRONIX_12_KLOK_003.jpg
En nog bedankt voor de tip C.44 :) Helaas kan ik er geen gebruik van maken.
Ps, als je ook zoiets wil opbouwen print dan eerst de tekening uit en vink af welke connecties je al gemaakt heb. Op een gegeven moment zijn de IC's bedolven onder draad en dan raak je gauw de draad kwijt. Bovendien heeft mijn display heel andere pinbenummering als de gebruikte in het voorbeeld.
Ps2, zo zie je dus ook dat 'klassieke' elektronica en uC's best samen kunnen gaan.

[ Voor 10% gewijzigd door kitao op 30-03-2014 11:50 . Reden: Ps/Ps2 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Afbeeldingslocatie: http://i.imgur.com/OctMc2s.jpg

bluetooth MMA7361 3-axis accelerometer under construction na een brainwave vannacht :+

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Mijn lap heeft geen BT, maar zo'n accelerometer wil ik ook eens proberen.
Enne... voor iemand die solderen lastig vindt valt me toch op dat jij alles op gaatjesprint zet

Acties:
  • 0 Henk 'm!

Verwijderd

kitao schreef op zondag 30 maart 2014 @ 11:43:
Mijn lap heeft geen BT, maar zo'n accelerometer wil ik ook eens proberen.
Enne... voor iemand die solderen lastig vindt valt me toch op dat jij alles op gaatjesprint zet
nou vind ik solderen niet 'lastig' (45 jaar ervaring) maar smd solderen/componenten wel (mindere ogen)
en dat is de manier waarop ik bouw.. degelijk dus.
en een bluetooth usb adaptertje kost niet zoveel.

1 van mijn ideeen wil ik wel verklappen hier.
als je aan het filmen ben met je videocameraatje, is het soms vrij irritant (althans, vind ik) dat je tijdens de aktie op dat schermpje moet kijken.
Nou dacht ik, stel ik zet tussen mijn camera en het statief een stappenmotor x-y platformpje dat ik draadloos (bluetooth) kan bedienen door alleen mijn hoofd te bewegen.
Daartoe zet ik een 'bluetooth hoedje op dat mijn hoofdbeweging (volgen van de tennisbal vb) doorgeeft aan de steppenmotortjes en zo volgt mijn camera gewoon waar ik naar kijk zonder dat ik hem vast heb 8)

een ander ideetje is om een fitness apparaat draadloos te verbinden met windows.
op windows draait processing en verwerkt de data die via bluetooth binnenkomt tot een visueel prettig geheel.

[ Voor 23% gewijzigd door Verwijderd op 30-03-2014 20:55 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Verwijderd schreef op zondag 30 maart 2014 @ 11:57:
[...]als je aan het filmen ben met je videocameraatje, is het soms vrij irritant (althans, vind ik) dat je tijdens de aktie op dat schermpje moet kijken. Nou dacht ik, stel ik zet tussen mijn camera en het statief een stappenmotor x-y platformpje dat ik draadloos (bluetooth) kan bedienen door alleen mijn hoofd te bewegen.
Daartoe zet ik een 'bluetooth hoedje op dat mijn hoofdbeweging (volgen van de tennisbal vb) doorgeeft aan de steppenmotortjes en zo volgt mijn camera gewoon waar ik naar kijk zonder dat ik hem vast heb.
Ok, zoiets hebben ze volgens mij ook in een Apache-helikopter. Knap hoor als je dat kunt maken.
Binnenkort ethernet eens proberen wrs, dan kan ik je hulp wel gebruiken. Veel plezier in de tuin 8)

[ Voor 22% gewijzigd door kitao op 30-03-2014 12:29 ]


Acties:
  • 0 Henk 'm!

Verwijderd

tnx

zo moeilijk is het niet hoor Kitao, kijk maar :
- http://www.elecrow.com/wi...erometer_Breakout-MMA7361
- https://code.google.com/p/mma7361-library/
- YouTube: Arduino using MMA7361 3-Axis Accelerometer
- http://www.ebay.com/itm/M...ain_0&hash=item53f8f9b12e

ik stuur alleen de output via bluetooth.
een toepassing is vb een tiltsensor, maar die kan je ook zonder software/arduino maken :*)

[ Voor 31% gewijzigd door Verwijderd op 30-03-2014 21:48 ]


Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 16-10 13:38

sebastius

Laten we lekker link gaan doen

Ik zit klem met mijn quiz-knoppen.

Ik heb 3x een Pro-Mini + NRF24L01+ chip. Tevens een knopje (aan een interruptlijn) en drie leds. Tot slot drie adres-lijntjes om (later) met een dipswitch het adres te selecteren.

Alle voorbeelden van de RF24 uitgeprobeerd en die werken. Nu ben ik zelf een systeem aan het bouwen dat moet doen:

Als adres = 0 -> server. Knopdruk zend het bericht 00 naar alle 6 de kanalen.
Als adres = 1-6 -> client. Knopdruk zend het bericht naar de server op het eigen kanaal. Als de client 00 ontvangt dan mag hij resetten (klaar voor de volgende knopdruk).

Wat heb ik werkend:

Het zenden van de client naar de server gaat goed.

Wat werkt niet:

Ik krijg op alle 6 de kanalen een FAIL als de server alle clienten probeert te resetten.

Code hieronder:

Void Blink is als een client een bericht moet sturen, deze werkt.
Void Serverblink is als de server een bericht aan iedereen moet sturen. Deze werkt NIET dus.

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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
/*prototype Quizbutton
Sebastius
*/

#include <SPI.h>
#include <Arduino.h>
#include "printf.h"

#include "nRF24L01.h"
#include "RF24.h"

const int addr_pin1 = 14;
const int addr_pin2 = 15;
const int addr_pin3 = 16;

const int led1 = 5;
const int led2 = 6;
const int led3 = 7;

const int button = 2;
const int rxint = 3;
boolean gedrukt;
byte bericht;
byte adres;

RF24 radio(9,10);
const uint64_t t_pipes[6] = { 0xE7D3F03577LL, 0xC2C2C2C2C2LL, 0xC2C2C2C2C3LL, 0xC2C2C2C2C4LL, 0xC2C2C2C2C5LL, 0xC2C2C2C2C6LL };

void setup(void)
{
    Serial.begin(57600);
    printf_begin();
    
    pinMode(addr_pin1, INPUT);
    pinMode(addr_pin2, INPUT);
    pinMode(addr_pin3, INPUT);

    pinMode(led1,OUTPUT);    
    pinMode(led2,OUTPUT);
    pinMode(led3,OUTPUT);
    
    pinMode(button,INPUT);
 
    digitalWrite(button,HIGH);
    
    digitalWrite(addr_pin1,HIGH); //1
    digitalWrite(addr_pin2,HIGH); //2
    digitalWrite(addr_pin3,HIGH); //4
    
    delay(20);
    
    bitWrite(adres,0,digitalRead(addr_pin1)); // hiermee lees ik het adres in.
    bitWrite(adres,1,digitalRead(addr_pin2));
    bitWrite(adres,2,digitalRead(addr_pin3));
    

    // Hier staat normaal een controle op de adresbits. Adres 7 mag niet.
 
    //We weten het adres nu, tijd voor de rol te bepalen. 
    //Als het adres 0 is dan is dit board de master, anders is het een dochter.
    radio.begin();

    // optionally, increase the delay between retries & # of retries
    radio.setRetries(15,15);

    // optionally, reduce the payload size.  seems to
    // improve reliability
    radio.setPayloadSize(1);  
  
   if ( adres  == 0 ) // host
    {
      radio.openReadingPipe(0,t_pipes[0]);
      radio.openReadingPipe(1,t_pipes[1]);
      radio.openReadingPipe(2,t_pipes[2]);
      radio.openReadingPipe(3,t_pipes[3]);
      radio.openReadingPipe(4,t_pipes[4]);
      radio.openReadingPipe(5,t_pipes[5]);
    }
    else // slave
    {
      radio.openWritingPipe(t_pipes[adres-1]);
      radio.openReadingPipe(1,t_pipes[adres-1]);
      
    }
   
    radio.startListening();

    //
    // Dump the configuration of the rf unit for debugging
    //

    radio.printDetails();
    printf("Adres: %d",adres,"\n\r");
  
    if (adres==0)
    {
      attachInterrupt(0, knopje, LOW);
      printf("interrupt gekoppeld\n\r");
    }
    attachInterrupt(0, knopje, LOW);
    
}

void loop(void)
{

  
  if (gedrukt)
  {
    if(adres==0)
    {
      serverblink();
      gedrukt=LOW;
      attachInterrupt(0, knopje, LOW);
    }
    else
    {
      blink();
    }
  }

if (radio.available())
  {
    radio.read(&bericht,sizeof(byte));
    printf("Ontvangen: %d",bericht,"\n\r");
    
    if (bericht==0)
      {
        printf("reset ontvangen\n\r");
        attachInterrupt(0, knopje, LOW);
      }
    
  }

}

void knopje()
{
  detachInterrupt(0);
  gedrukt = HIGH;
}


void blink()
{

  digitalWrite(led1,HIGH);
  printf("zenden van : %d",adres," \n\r");
  radio.stopListening();
  bool ok = radio.write(&adres,sizeof(byte));
  gedrukt=LOW;
  if (ok)
  {
    printf("OK...\n\r");
    digitalWrite(led1,LOW);
   }
   else
   {
     printf("Failed. Allow retry! \n\r");
     attachInterrupt(0, knopje, LOW);
   }
// Now, continue listening
   radio.startListening();
}

void serverblink()
{
  
  printf("serverblink\n\r");
  radio.stopListening();
  for (int teller=0; teller <= 5; teller++)
  {
    radio.openWritingPipe(t_pipes[teller]);
    
    bool ok=radio.write(&adres,sizeof(byte));
  
    printf("bericht %d",teller," verzonden.\n\r");
    if (ok)
    {
      printf("OK...\n\r");
    }
    else
    {
      printf("Fail...\n\r");
    }
  }
  radio.startListening();
}

[ Voor 6% gewijzigd door sebastius op 30-03-2014 12:40 ]


Acties:
  • 0 Henk 'm!

Verwijderd

als 1 van de clients buiten het bereik van de server is.. werken de andere dan nog ?

[ Voor 4% gewijzigd door Verwijderd op 30-03-2014 13:16 ]


Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 16-10 13:38

sebastius

Laten we lekker link gaan doen

In dit concept wel, maar die fase ben ik nog niet eens.

Acties:
  • 0 Henk 'm!

Verwijderd

en als je die print/if/else opdracht even // in de serverblink

[ Voor 8% gewijzigd door Verwijderd op 30-03-2014 13:33 ]


Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 16-10 13:38

sebastius

Laten we lekker link gaan doen

Dan nog komt er geen bericht in m'n clients aan helaas :)

Update: het probleem zit niet in de code maar in de settings, het lukt gewoon niet altijd om goed contact te maken. Number of retries omhoog en goan :) Opgelost denk ik :)

[ Voor 60% gewijzigd door sebastius op 30-03-2014 21:55 ]


Acties:
  • 0 Henk 'm!

  • RubenTheys
  • Registratie: Februari 2010
  • Laatst online: 19-06 12:41
Mijn eerste kleine Arduino-projectje zit erop. Ik heb zonet een systeem gemaakt waarmee ik vanuit het huis het peil in mijn regenwaterput kan opvragen.

Onze regenwaterput is een groot betonnen vat, ingegraven in de tuin. Wij hebben hierop de toiletten en de wasmachine aangesloten, dus het leek me interassent om altijd het niveau op te vragen. Het principe is reeds beproefd in de Arduino-wereld: een sonar bovenin de tank om de afstand tot de waterspiegel te meten:

Afbeeldingslocatie: http://oi62.tinypic.com/ny62vb.jpg

Perfect projectje om te leren solderen en Arduino wat te leren kennen!

Work in progress-pics:

1. Sonar testopstelling
Afbeeldingslocatie: http://i57.tinypic.com/33dclkk.jpg

2. Sonar waterdicht inkapselen
Afbeeldingslocatie: http://i60.tinypic.com/sdjvvk.jpg

3. Eerste keer solderen... Het valt eraan te zien ;)
Afbeeldingslocatie: http://i62.tinypic.com/33yow2x.jpg

4. Testopstelling. Werkt!
Afbeeldingslocatie: http://i57.tinypic.com/9thb94.jpg

5. De put in kwestie
Afbeeldingslocatie: http://i62.tinypic.com/2zdqbk8.jpg

6. Sensor op zijn plaats
Afbeeldingslocatie: http://i61.tinypic.com/vry7ts.jpg

7. In de behuizing in de garage. Groene knop activeert backlight voor 8 seconden. Lampje zal op termijn flikkeren als de put minder dan 10% gevuld is.
Afbeeldingslocatie: http://i59.tinypic.com/2d1jr88.jpg

8. Detail LCD
Afbeeldingslocatie: http://i61.tinypic.com/9u0owo.jpg


Dit was een leuk beginnersprojectje. Kan nog eindeloos uitgebreid worden met ethernet-opvraging en mail-waarschuwingen, maar dat gaat me te ver.

Excuses voor de vele foto's! :)

Acties:
  • 0 Henk 'm!

Verwijderd

knap gedaan voor een eerste project !

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
So ! Zeker knap gedaan hoor. Heb je linkje naar het gebruikte voorbeeld/programma? Dit soort projectjen liggen nogal in de belangstelling. En over die foto's, ik heb er geen last van, integendeel, maar als je minder veld wil gebruiken kijk dan eens bij postimage.org of soortgelijken.
Dan krijg je zoiets :
Afbeeldingslocatie: http://s27.postimg.org/5dunp531b/images_q_tbn_ANd9_Gc_SNdwivj_W0_Efw_EOn_Wi_J4i_HVRc_MPqki.jpg Afbeeldingslocatie: http://s14.postimg.org/x5khh96kt/200905051478100.jpg
klein maar klikbaar en foto's zijn dan makkelijk vergroot te doorzoeken. (met Ctrl+/- of zoom)

@Borroz, nog bedankt voor de links

[ Voor 13% gewijzigd door kitao op 31-03-2014 07:34 ]


Acties:
  • 0 Henk 'm!

  • jeantje
  • Registratie: December 2008
  • Laatst online: 15-10 16:18
Jongens, ik heb een klein vraagje.

Kan het veel kwaad als ik een relais direct op de arduino verbind?
Ik zie veel schakelingen met een transistor maar is dit echt heel belangrijk?

Meer komt er niet aan behalve een knopje.
het is een 5V relais overigens.

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Dit type ultrasonic sensors zijn toch niet waterdicht/vocht dicht?

Ze zijn niet bedoeld voor buitengebruik zover ik weet. Spreakers zijn niet waterdicht en kunne niet tegen vocht, zal wellicht wel even blijven functioneren maar verwacht wel dat ze stuk gaat.

Daarvoor heb je andere sensoren, die hebben andere vorm, worden onder andere gebruikt voor in bumpers van auto's.

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • foekie01
  • Registratie: December 2012
  • Laatst online: 17-07-2024
jeantje schreef op maandag 31 maart 2014 @ 11:28:
Jongens, ik heb een klein vraagje.

Kan het veel kwaad als ik een relais direct op de arduino verbind?
Ik zie veel schakelingen met een transistor maar is dit echt heel belangrijk?

Meer komt er niet aan behalve een knopje.
het is een 5V relais overigens.
Je mag (zo uit het hoofd) maximaal een verbruik van ongeveer 20mA aan je pin hangen.
Oftewel: die trasnsistor gebruiken ze niet voor niks, want die regelt de "grote" stroom vanuit je pin. Gebruik een transistor.
mad_max234 schreef op maandag 31 maart 2014 @ 11:41:
Dit type ultrasonic sensors zijn toch niet waterdicht/vocht dicht?

Ze zijn niet bedoeld voor buitengebruik zover ik weet. Spreakers zijn niet waterdicht en kunne niet tegen vocht, zal wellicht wel even blijven functioneren maar verwacht wel dat ze stuk gaat.

Daarvoor heb je andere sensoren, die hebben andere vorm, worden onder andere gebruikt voor in bumpers van auto's.
Viel mij ook op. Ik denk huh?! waterdicht maken?! enige wat waterdicht is, is de elektronica zelf. De sensor is nog steeds niet-waterdicht.

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Dit zijn de waterproof versies, heb je in verschillende vormen en maten.


http://www.ebay.com/sch/i...sensor&_sacat=0&_from=R40

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Het zijn piezo speakertjes he, geen gewone speakers. Hij zal vast niet het eeuwige leven hebben, maar ik vermoed ook niet dat hij heel snel kapot gaat, en die dingen kosten verder ook geen drol. Zoals hij hangt kan er geen water ofzo inregenen, het enige probleem dat ik zie is de vochtige omgeving. Oftewel, gewoon aanzien hoe lang hij het blijft doen.
Je mag (zo uit het hoofd) maximaal een verbruik van ongeveer 20mA aan je pin hangen.
Oftewel: die trasnsistor gebruiken ze niet voor niks, want die regelt de "grote" stroom vanuit je pin. Gebruik een transistor.
Ligt natuurlijk ook aan het relais, er zijn er best die onder de 20mA gebruiken. Een voordeel wat er wel bij komt is dat het simpelweg je microcontroller beschermt. Sowieso hoor je diodes te hebben die de pieken door de spoel opvangen, maar het geeft extra isolatie.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Afbeeldingslocatie: https://iprototype.nl/images/products/829_big.png
Is relaismodule, klik en gaan.

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Soms wil je alleen wat kleiners hebben ;). Overigens heb je voor dat formaat inderdaad altijd een transistor nodig om voldoende stroom te leveren.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Iets anders, ik heb een paar knopjes op mijn klokje gezet. Menu springt alle kanten op. Heb al 4 condensators 104 over de knoppen gezet, is nu iets beter maar onvoldoende.
YouTube: Exercise 12.1
Ik vroeg me af of er geen speciale button IC's zijn met ingebouwde debouncers. Blijkt dus wel zo te zijn.
EDE2008/P en maxim heeft er een paar maar geen dip dacht ik. De ede is te krijgen bij jameco, verz. kosten $15,-
Farnell en conrad geen resultaat. Leek me aardig om dit te delen en als iemand een vervangende chip weet dan hoor ik het graag. Voordeel: er hoeft totaal geen andere componenten te worden aangesloten zoals caps e.d.
(behalve de normale pull up/down weerstand)

@Sissors, valt wel mee hoor. Lxbxh = 35x22x18mm. En ik zie hier geen transistor in beeld :
Afbeeldingslocatie: http://www.dfrobot.com/wiki/images/thumb/7/75/DFR0017Demo.png/400px-DFR0017Demo.png
The relay should have the positive wire of the device being used connected to "IN" and to "Out 1" as shown in figure 2, and any digital signal pin on the arduino end (For example pin 13).
Sending a digital high or a "1" will trigger the relay. Sending a digital low or "0" will disable the relay.
http://www.dfrobot.com/wi...utorial:_DFR0017_V2_Relay
Zelf niet getest met 220 maar hij kan gewoon direkt op een arduino. Stuurlijntje hoog maken en relais schakelt.

[ Voor 31% gewijzigd door kitao op 31-03-2014 12:32 ]


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Sissors schreef op maandag 31 maart 2014 @ 11:50:
Het zijn piezo speakertjes he, geen gewone speakers. Hij zal vast niet het eeuwige leven hebben, maar ik vermoed ook niet dat hij heel snel kapot gaat, en die dingen kosten verder ook geen drol. Zoals hij hangt kan er geen water ofzo inregenen, het enige probleem dat ik zie is de vochtige omgeving. Oftewel, gewoon aanzien hoe lang hij het blijft doen.
Ja dat snap ik uiteraard dat piezo elementen zijn die de speakers vormen voor SR04, heb ze al jaren in huis en vaak mee gespeeld. Maar die kunnen even goed niet tegen vocht. Ga je al die moeite en uren steken in mooie behuizing, waarom dan niet gelijk vor paar euro meer goed doen. Die paar euro ben je straks ook weer kwijt aan nieuwe SR04 of alsnog waterproof speakers.

Denk dat daar 100% luchtvochtigheid hangt, daarvoor heb je waterproof elektronica nodig. Vocht komt dus overal en daar hoeft het niet voor in te regenen, dringt overal in door.

[ Voor 4% gewijzigd door mad_max234 op 31-03-2014 12:33 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • RubenTheys
  • Registratie: Februari 2010
  • Laatst online: 19-06 12:41
mad_max234 schreef op maandag 31 maart 2014 @ 11:41:
Dit type ultrasonic sensors zijn toch niet waterdicht/vocht dicht?

Ze zijn niet bedoeld voor buitengebruik zover ik weet. Spreakers zijn niet waterdicht en kunne niet tegen vocht, zal wellicht wel even blijven functioneren maar verwacht wel dat ze stuk gaat.
Inderdaad. Het doel van die waterdichte kit is eerder om die module stabiel te houden, en te beschermen van regenwater dat door het putdeksel naar beneden kan druppen. Dit water valt dan op de achterkant van het doosje, en door de waterdichte vulling is de electronica wat beschermd.

De piezo speakertjes zelf zijn naar beneden gericht en komen nooit in contact met water omdat er een overloop in de put zit op 30 cm van de sonar. Ik verwacht geen levensduur van 10 jaar, maar ze zullen het wel even uithouden, hoor ;) Een schematje om eea duidelijk te maken (hierop staan ook wat variabelen die in de code voor komen:

Afbeeldingslocatie: http://s10.postimg.org/ogdy104d5/Tank_identifiers.png

Hier is trouwens de code die ik heb geschreven... Heb een lopend gemiddelde gebruikt om de aflezing wat te stabiliseren. Voor de rest bevat 'ie geen witchcraft :P

C: Regenput niveaumeting
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/* Regenput niveaumeting
 *
 * Saturday March 22, 2014
 * Ruben Theys
 *
 * Sonar colors: VCC = brown / GND = Orange / TRIG = BLUE / ECHO = GREEN
 */

#include <LiquidCrystal.h>

const int sonar_trig = 3;
const int sonar_echo = 2;

const int LCD_backlight = 14;
const int LCD_RS = 12;
const int LCD_RW = 11;
const int LCD_EN = 10;

const int LCD_D4 = 15;
const int LCD_D5 = 16;
const int LCD_D6 = 17;
const int LCD_D7 = 18;

LiquidCrystal lcd(LCD_RS, LCD_RW, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7); 

const float tank_sonar_offset = 20;       // Sonar meauring point offset from tank's ceiling [mm]
const float tank_inner_radius = 1315;     // Inner radius of the tank [mm]
const float tank_inner_height = 1860;     // Inner height of the tank [mm]
const float tank_overflow_height = 320;   // Distance from tank ceiling to overflow spillway

const float tank_min_measured_distance = tank_overflow_height - tank_sonar_offset;
const float tank_max_measured_distance = tank_inner_height - tank_sonar_offset;
const float tank_max_water_level = tank_max_measured_distance - tank_min_measured_distance;

const long LCD_backlight_time = 8000; // Timespan the backlight should remain on [ms]
long LCD_backlight_activation_millis; // Point in time when the green button was last pressed
const int LCD_backlight_activate = 7; // Pin 7 senses the button


// Progressbar characters
byte p20[8] = {B10000, B10000, B10000, B10000, B10000, B10000, B10000,}; // 20 pct block
byte p40[8] = {B11000, B11000, B11000, B11000, B11000, B11000, B11000,}; // 40 pct block
byte p60[8] = {B11100, B11100, B11100, B11100, B11100, B11100, B11100,}; // 60 pct block
byte p80[8] = {B11110, B11110, B11110, B11110, B11110, B11110, B11110,}; // 80 pct block
byte p100[8]= {B11111, B11111, B11111, B11111, B11111, B11111, B11111,}; // 100 pct block

// Running average
const int average_numReadings = 100;
float average_readings[average_numReadings]; 
int average_index = 0;
float average_total = 0; 
float averageDistance = 0;  


void setup() {
  // 1. Configure backlight pin
  pinMode(LCD_backlight, OUTPUT);
  digitalWrite(LCD_backlight, HIGH);
  
  // 2. Initialize LCD
  lcd.begin(16,2);
  lcd.clear();
  lcd.setCursor(0,0);
  
  // 3. Create percentagebar characters
  lcd.createChar(0, p20);
  lcd.createChar(1, p40);
  lcd.createChar(2, p60);
  lcd.createChar(3, p80);
  lcd.createChar(4, p100);
  
  // 4. Configure the sonar pins
  pinMode(sonar_trig, OUTPUT);
  pinMode(sonar_echo, INPUT);
  
  // 5. Running-average setup
  for (int i = 0; i < average_numReadings; i++)
    average_readings[i] = 0;  

  // 6. LCD backlight-button setup.
  pinMode(LCD_backlight_activate, INPUT_PULLUP);
  LCD_backlight_activation_millis = millis();
}

void loop() {
  float duration, sonarDistance;
  int volume, percentage;

  // 1. Generate a clean pulse for the sonar
  digitalWrite(sonar_trig, LOW);
  delayMicroseconds(2);
  digitalWrite(sonar_trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(sonar_trig, LOW);

  // 2. Receive the sensor's echo.
  duration = pulseIn(sonar_echo, HIGH);

  // 3. Convert the echo's duration to a distance
  sonarDistance = microsecondsToMillimeters(duration);
  
  // 4. Calculate new running average
  average_total -= average_readings[average_index]; // Substract oldest reading from total       
  average_readings[average_index] = sonarDistance;  // Store new reading
  average_total += average_readings[average_index]; // Add new reading to total
  average_index++;                                  // Move up one index in the circular buffer.
  if (average_index >= average_numReadings)         // If we reached the end, go back to the beginning    
    average_index = 0;                           

  averageDistance = average_total / average_numReadings;         

  // 5. Calculate volume and percentage from new average
  volume = sonarDistanceToVolume(averageDistance);
  percentage = sonarDistanceToPercent(averageDistance);
  
  
  // 6. Update LCD
  lcd.setCursor(0,0);
  lcd.print(volume);
  lcd.print(" l.   "); // Use enough spaced so the previous characters get erased when going from 
                       // 4 to 3 to 2 to 1 digits (1000 -> 999, 100 -> 99, 10 -> 9)
  
  lcd.setCursor(12,0);
  if (percentage < 100)
    lcd.write(" ");
  if (percentage < 10)
    lcd.write(" ");
  
  if (percentage < 0) percentage = 0; // Never show negative volumes. Op=op
  
  lcd.print(percentage);  
  lcd.print("%");
  
  
  
  //// 7. Percentage bar 
  
  // 7.1 Whole blocks
  lcd.setCursor(0,1);  
  double amountOfBlocks = 16.0/100 * percentage; // 16 is the amount of characters the LCD can handle.
  int partialBlocks = amountOfBlocks * 5;
  if (amountOfBlocks >= 1 ) {
    int i = 1;
    for (i = 1 ; i < amountOfBlocks ; i++) {
      lcd.setCursor(i-1, 1);
      lcd.write(4);
    }
    partialBlocks = (amountOfBlocks - i + 1)*5 ;
  }
    
  // 7.2 Partial blocks.
  switch (partialBlocks) {
    case 0: break;
    case 1: lcd.print((char)0); break;
    case 2: lcd.write(1); break;
    case 3: lcd.write(2); break;
    case 4: lcd.write(3); break;
    case 5: lcd.write(4); break;
  }
  
  // 7.3 Empty rest of progress bar
   for (int j=0 ; j<(16-amountOfBlocks+1) ; j++) {
     lcd.print(" ");
   }
   
   
  unsigned long currentMillis = millis();
  
  // 8. Check if we need to activate the backlight
  int buttonState = digitalRead(LCD_backlight_activate);
  if (buttonState == LOW) {  // LOW because I'm using the internal pull-up resistor for this pin.
    LCD_backlight_activation_millis = currentMillis; // Store the time of activation
    digitalWrite(LCD_backlight, HIGH);
  }
  
  // 9. Check if we need to deactivate the backlight
  if (currentMillis - LCD_backlight_activation_millis > LCD_backlight_time) {
    digitalWrite(LCD_backlight, LOW);
  }
    
  // 10. Delay so the sonar has the time to properly send his echo-pulse
  delay(100);
}


float microsecondsToMillimeters(float microseconds) {
  return microseconds / 2.938 / 2;
}

int sonarDistanceToVolume(float current_measured_distance) {
  // Volume of a cylindrical tank:
  // V = height * pi * radius^2
  return (tank_inner_height - current_measured_distance) * PI * pow((tank_inner_radius)/1000, 2);
}

int sonarDistanceToPercent(float current_measured_distance) {
  float water_level = tank_max_measured_distance - current_measured_distance;
  return (water_level / tank_max_water_level) * 100;
}

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Hoef overigens alleen de speakers te vervangen je kan het bordje gewoon hergebruiken, dan blijft het wellicht 20 a 25 jaar gewoon werken in alle omstandigheden, mits je alles goed heb afgekit met goede kwaliteit kit die goed elastisch blijft en je soldering ook goed is gedaan.

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • RubenTheys
  • Registratie: Februari 2010
  • Laatst online: 19-06 12:41
mad_max234 schreef op maandag 31 maart 2014 @ 12:48:
Hoef overigens alleen de speakers te vervangen je kan het bordje gewoon hergebruiken, dan blijft het wellicht 20 a 25 jaar gewoon werken in alle omstandigheden, mits je alles goed heb afgekit met goede kwaliteit kit die goed elastisch blijft en je soldering ook goed is gedaan.
Ga ik zeker eens naar kijken. Ik wist niet eens dat er waterdichte sonars bestonden tegen een schappelijk prijsje. Deze module had ik op het werk gekregen, daarmee misschien de knullige componentenkeuze :P Bedankt voor de constructieve kritiek, leer ik weer wat van!

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Deze zijn toch wel betaalbaar? 40Khz, kan je na mijn weten zo op je bestaande SR04 printje zetten.

Twee stuks
http://www.ebay.nl/itm/Ne...ain_0&hash=item43abab32ee

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • RubenTheys
  • Registratie: Februari 2010
  • Laatst online: 19-06 12:41
Ondertussen heb ik die besteld, en die kan ik dan op mijn reserve-module zetten (heb er een tiental meegekregen). Zo kan ik de behuizing nog hergebruiken :) Ik ga (bij wijze van experiment/procrastinatie) de huidige zo lang mogelijk laten zitten. Eens kijken hoe lang zoiets betrouwbaar werkt. Als die faalt gooi ik 'm gewoon weg en vervang ik hem door de aangepaste reserve-module!
Nogmaals bedankt.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
mad_max234 schreef op maandag 31 maart 2014 @ 12:53:
Deze zijn toch wel betaalbaar? 40Khz, kan je na mijn weten zo op je bestaande SR04 printje zetten.
http://www.ebay.nl/itm/Ne...ain_0&hash=item43abab32ee
Vroeg me al af hoe dat zit met aansluiten. Zitten ook speciale bordjes bij je vorige link. Relaisje net getest met Blink. Werkt goed, alleen als er stroom op de arduino wordt gezet dan klappert die als een gek.
Weet iemand uit z'n hoofd hoe dat witte connectortje heet ? Heb daar nog extra kabeltje voor nodig want jumpers passen er niet in, tenminste niet 3 tegelijk.
Afbeeldingslocatie: https://iprototype.nl/images/products/829_big.png
Edit : Het klapperen is niet op pin 7. Bij reset/uploaden knippert led 13 altijd, zal daarmee te maken hebben :?

[ Voor 6% gewijzigd door kitao op 31-03-2014 13:30 ]


Acties:
  • 0 Henk 'm!

Verwijderd

als je geen spanning op zo'n relaisbordje zet, dan zie je alleen de onboard LED aan/uit gaan (indien aanwezig).
uiteraard als je er spanning op zet en je stuurt een '1 dan schakelt het relais.
maar dat is een wat lastig bordje met jst stekkertje .. waarom niet deze ?

[ Voor 3% gewijzigd door Verwijderd op 31-03-2014 13:35 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Verwijderd schreef op maandag 31 maart 2014 @ 13:34:
als je geen spanning op zo'n relaisbordje zet, dan zie je alleen de onboard LED aan/uit gaan.
uiteraard als je er spanning op zet en je stuurt een '1 dan schakelt het relais.
Ja ok, zo zit en zat het ook. Plus , min en stuurdraadje. Maar ik had stuurdraadje op 13 zitten. Dan bij opstart klappert het relais omdat op één of andere wijze de ontwerpers van de uno het leuk vonden om pin 13 bij opstarten als jojo te gebruiken. Niet handig als je daar dan een automatische garagedeur op heb gezet via dat relais
maar dat is een wat lastig bordje met jst stekkertje .. waarom niet deze ?
Jst, tnx.
Iproto verzond toen nog gratis boven 20,- Bestel er niet veel meer en dat relais gebruik ik weinig. Ik vind het wel beter als die ouwe spoeldingen. Blusdiode heb je volgens mij ook niet erbij nodig.

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
kitao schreef op maandag 31 maart 2014 @ 13:21:
[...]

Vroeg me al af hoe dat zit met aansluiten. Zitten ook speciale bordjes bij je vorige link.
Zoals de originele ook zitten aangesloten op het hc-rs04 printje, lange pootje is de + en korte de grond. Je hebt zender en receiver, moet je even kijken welke welke is, desnoods met beetje reverse engineering, lijkt me geen probleem.

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Ik heb nog geen Ping in huis, maar het is eigenlijk iets algemeens. Kanme zomaar voorstellen dat een bepaalde sensor bij een bepaald stuurbordje past en dat het niet zo maar uitwisselbaar zou zijn.
@Borroz, nu je het zegt JST, die had jij toen toch nodig voor je laserlichteffect ? Is dat nog af gekomen ?

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09
Is alleen piezo, een speaker dus, eentje zit omgekeerd aangesloten zodat die als microfoon werkt, simpel gezegd. Zolang die frequentie aankan en de voltage, dan zijn ze uitwisselbaar, natuurlijk moet je geen 50mm piezo op printje zetten waar eerst een 10mm opzat, en geen 250Khz op 40Khz printje, kans dat dan niet helemaal lekker meer werkt is vrij groot.

Maar zover ik heb kunnen nagaan zijn alle specs hetzelfde, heb 40Khz sensors uitgekozen van 10mm.

Edit/
Denk dat ook prima wekt met gewone speakers die in je luidsprekers zitten, zolang ze de 40Khz blokgolf kunnen uitzenden die circuit opwekt en andere microfoon kan het opvangen dan werkt het.

Is ook niet zo spannend want zo printje doet, arduino geeft start puls(trigger pin) en worden er 8 blokgolf pulsen uitgezonden via de speaker, die worden weerkaatst en opgevangen door de microfoon en zolang de microfoon echo ontvangt zal die puls hoog geven op echo pin. Hoe verder iets weg is hoe langer de echo duurt en hoe langer de echo pin hoog blijft.

Formule is heel simpel.
uS / 58 = Centimeters. :)

[ Voor 40% gewijzigd door mad_max234 op 31-03-2014 14:15 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Alvast handig om te weten en Ruben ook bedankt voor het programma. Heb wel geen regenput maar dat staat er los van. C.44 was ook met zoiets bezig als ik me goed herinner.

Acties:
  • 0 Henk 'm!

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

C.44

TurboCharged Supra Driver

kitao schreef op maandag 31 maart 2014 @ 14:06:
Alvast handig om te weten en Ruben ook bedankt voor het programma. Heb wel geen regenput maar dat staat er los van. C.44 was ook met zoiets bezig als ik me goed herinner.
Idd, ik ben met iets vergelijkbaars bezig, al is mijn reservoir een liter of 2 à 3 groot :+ Ik heb ook een dergelijke sensor besteld via eBay maar die bestelling is er voorlopig nog niet vermoed ik. Volgens 't trackingnummer is alles past gisteren naar 't luchtpost gegaan...

Btw, Kitao, waarom is die rheostat via RS niets voor jou is toch 't zelfde onderdeel of mis ik ergens iets?

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!

Verwijderd

waar komen die pixels vandaan ??? %$%#$% gek wordt ik ervan

Afbeeldingslocatie: http://i.imgur.com/j3nemGh.jpg

moet wel uit de Adafruit_ST7735 lib komen want in mijn code kan ik het niet ontdekken
* de 2 SPI devices beinvloeden elkaar blijkbaar (timing/voeding ?) .. morgen weer verder


was chipselectprobleempje.. kan nu SD kaartje mobiel lezen en geen rommel op de TFT :*)
verse koffie en in de morgen ipv na een lange dag helpt..soms

[YouTube: https://www.youtube.com/watch?v=D61tbXLUV_Y&feature=youtu.be]

- TFT display
- aansluiten

[ Voor 84% gewijzigd door Verwijderd op 03-04-2014 09:59 ]


Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15-10 17:42

Acties:
  • 0 Henk 'm!

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

C.44

TurboCharged Supra Driver

Lijkt een beetje op een Esplora met een schermpje en een mooie case. Voor dat geld is 't niet verkeerd.

@Borroz, probeer 't es puur met de simpelste code die je kunt vinden of evt met een example file ipv je eigen sketch?

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!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
C.44 schreef op maandag 31 maart 2014 @ 18:48:
Btw, Kitao, waarom is die rheostat via RS niets voor jou is toch 't zelfde onderdeel of mis ik ergens iets?
Ik wou bestellen maar toen werd een KvK-nummer gevraagd en die heb ik niet maar bedankt voor het meekijken :)
Iets anders, ik zit me al tijdje rot te ergeren aan dender (bounce) verschijnselen. In een vorige post had ik het voor geïnteresseerden over een IC dat daar speciaal voor ontworpen is :
kitao schreef op maandag 31 maart 2014 @ 12:06:
IMenu springt alle kanten op. Heb al 4 condensators 104 over de knoppen gezet, is nu iets beter maar onvoldoende.
YouTube: Exercise 12.1
Ik vroeg me af of er geen speciale button IC's zijn met ingebouwde debouncers. Blijkt dus wel zo te zijn.
EDE2008/P en als iemand een vervangende chip weet dan hoor ik het graag want deze is amper te krijgen. Voordeel: er hoeft totaal geen andere componenten te worden aangesloten zoals caps e.d. (behalve de normale pull up/down weerstand)
Ik heb inmiddels zef een vervanger gevonden op ebay, dat is de MC14490 via deze site.
Hier een plaatje van de knoppen zonder debounce erachter wat ik heb opgemeten als ik 1x de knop indruk:
Afbeeldingslocatie: http://s1.postimg.org/j3z5us6m3/BOUNCE.jpg
Geen wonder dat het alarmklokje het dan niet doet. Ik had nog wel 2 stuks 7400 liggen en die er voorlopig achtergezet volgens deze site.
Afbeeldingslocatie: http://s3.postimg.org/3q8u2s18f/images_q_tbn_ANd9_Gc_RXBOvz_RErvpt_D6_ONyiw_WDr8iy9_Th_J.jpg
Ik zal niet zeggen dat er nu nooit een getalletje wordt overgeslagen maar het valt goed te bedienen.
Voor de weerstanden 10K toegepast.
Sommigen zullen de voorkeur geven aan software-debounce maar gezien het erg lange programma gaat mij dat niet snel lukken en eenmaal opgebouwd kan je zo'n knoppenbordje overal toepassen.
Ziet er nogal chaotisch uit maar knoppenbordje zit onderaan op een los breadboardje
Afbeeldingslocatie: http://s4.postimg.org/i4dbk7ovd/Tronix12_Alarmklokje_005.jpg

[ Voor 3% gewijzigd door kitao op 01-04-2014 08:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Puch-Maxi schreef op maandag 24 maart 2014 @ 16:18:
Laat het maar even weten Borroz, ik zoek namelijk ook nog zo'n ding!
na wat douane gezeik omzwervingen is er 1 binnen 8)
Afbeeldingslocatie: http://i.imgur.com/KFqSxDG.jpg

Acties:
  • 0 Henk 'm!

  • Puch-Maxi
  • Registratie: December 2003
  • Laatst online: 20:43
Haha, op 1 april nog wel! Ik wil onze kat zo'n ding omhangen om te kijken waar hij allemaal wel niet uithangt...

My favorite programming language is solder.


Acties:
  • 0 Henk 'm!

Verwijderd

Puch-Maxi schreef op dinsdag 01 april 2014 @ 12:50:
Haha, op 1 april nog wel! Ik wil onze kat zo'n ding omhangen om te kijken waar hij allemaal wel niet uithangt...
je zou het ook zelf kunnen maken, anders ff DM'en.. komt er volgende week toevallig nog 1 binnen en die is overkompleet 8)

Acties:
  • 0 Henk 'm!

  • Puch-Maxi
  • Registratie: December 2003
  • Laatst online: 20:43
Ja, maar zo ver ben ik nog niet met Arduino :+. Sterker nog, mijn eerste onderdelen moeten nog komen!

My favorite programming language is solder.


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Ik heb mijn onderdeeltjes MCP4162 gelukkig gevonden na een mailtje te hebben verstuurd aan DIL. Geen minimum bestel bedrag en 7,50 verz. kosten. Maar goed, als ik het zelf ga ophalen kost me dat ook de helft daarvan. Plus tijd.
Over de GPS:
Afbeeldingslocatie: http://i656.photobucket.com/albums/uu281/cherry2009shine/tracker/dh102-11.jpg
Welk onderdeel moet er nu eigenlijk aan bijv. een huisdier worden bevestigd ? Ik zie het niet tenzij het dat forse kastje is.

Acties:
  • 0 Henk 'm!

Verwijderd

Puch-Maxi schreef op dinsdag 01 april 2014 @ 15:52:
Ja, maar zo ver ben ik nog niet met Arduino :+. Sterker nog, mijn eerste onderdelen moeten nog komen!
ah ok.. naja.. volgende week heb ik er nog 1 over
de accuus (zitten er 2 bij + netlader + usb kabel) zitten vol heb alleen geen prepaid kaartje liggen.
morgen weer een dag :)


ik had voor de lol zo'n 'sticker' voor op een T shirt besteld, met het idee om is te kijken of het te koppelen is aan arduino ofzo.
een Replacement Sound and Music Activated Spectrum VU Meter EL Visualizer
Afbeeldingslocatie: http://i.imgur.com/exz3fJJ.jpg
Afbeeldingslocatie: http://i.imgur.com/wwokZan.jpg

zaten er 2 in het pakje.. dus dat is winst :9
bij nader inzien reageert dat ding niet echt op frequencies.. eerder op volume.
had ik eigenlijk ook niet verwacht gezien de prijs.
Afbeeldingslocatie: http://i.imgur.com/5pykkfE.jpg

stukkie film
[YouTube: https://www.youtube.com/watch?v=cARnKVYAXB8&feature=youtu.beb]

eerste snelle indruk.. prima om ook gewoon in te lijsten en ook wel 'hackbaar :+
van de onderste 2 rijen ontbreken (by design) een aantal leds, goed te zien op de laatste foto.

[ Voor 3% gewijzigd door Verwijderd op 02-04-2014 16:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

kitao schreef op dinsdag 01 april 2014 @ 17:28:
Welk onderdeel moet er nu eigenlijk aan bijv. een huisdier worden bevestigd ? Ik zie het niet tenzij het dat forse kastje is.
valt toch wel mee

Afbeeldingslocatie: http://i.imgur.com/9NHZwhb.jpg

[ Voor 14% gewijzigd door Verwijderd op 01-04-2014 17:43 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
P-M had het over een kat. Zelfs daarvoor lijkt het op een molensteen. Maar kun je wel losse trackers erbij bestellen of is het 1 op 1 ?

Acties:
  • 0 Henk 'm!

Verwijderd

kitao schreef op dinsdag 01 april 2014 @ 17:45:
P-M had het over een kat. Zelfs daarvoor lijkt het op een molensteen. Maar kun je wel losse trackers erbij bestellen of is het 1 op 1 ?
die dingen zijn bedoeld om realtime over het internet voorwerpen (auto's/boten/mensen) te tracken, maar er kan meer mee.
je kan vb een gebied instellen, wanneer de tracker daarbuiten komt stuurt die zelf een alarm sms je ect.
het is dus in feite een soort GSM met GPS, je kan hem ook opbellen en de microfoon aanzetten.
Er moet dus een telefoonkaartje in en derhalve heeft iedere tracker zijn eigen tel. nr. en is via google maps te volgen.

[ Voor 18% gewijzigd door Verwijderd op 01-04-2014 17:50 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Dat is wel handig dan en kun je er dan ook losse erbij bestellen ? Over de afmetingen, ik moet bij dat soort dingen altijd aan films denken waar ze niet groter zijn als dat muntje in jasknoopvorm.

Leuk gedaan trouwens met die VU-meter.

Acties:
  • 0 Henk 'm!

Verwijderd

kitao schreef op dinsdag 01 april 2014 @ 17:55:
Leuk gedaan trouwens met die VU-meter.
komt zo uit Hong Kong hoor .. velletje ledjes, kastje met microfoontje en een flatkabeltje.

voor een projectje waar af en toe een muziekje nodig is, wacht ik nog op een SD card soundmodule.
Afbeeldingslocatie: http://i.ebayimg.com/00/s/MTAwMFgxMDAw/$T2eC16VHJHEE9ny2rTUnBQ-ov0QRMw~~60_1.JPG

- library
- how to use
- PDFfie
- convert MP3 to AD4

[ Voor 69% gewijzigd door Verwijderd op 02-04-2014 15:19 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Een vraagje over arduino die op 5V draait en een aangesloten stukje hardware dat op 3.3V draait.
Normaal als ik op de uno bijvoorbeeld pin 10 hoog maak dan staat daar 5V op.
Sluit ik een 3.3V hardware aan op 5V gaat die stuk zeggen ze.
Maar hoe kan het dan dat ik pin 10 van uno wel hoog kan maken dat in verbinding staat met een 3.3V apparaatje ?

Voorbeeld, ik heb pas een RFID, zie deze post, en die heeft 3.3V voeding kitao in "[Discussie] Arduino-topic"
Kijk ik naar het programma dan zie je dit :
C++:
1
2
3
4
5
6
void setup() {                
   pinMode(chipSelectPin,OUTPUT);     // Set digital pin 10 as OUTPUT to connect it to the RFID /ENABLE pin 
    digitalWrite(chipSelectPin, LOW);     // Activate the RFID reader
  pinMode(NRSTPD,OUTPUT);             // Set digital pin 10 , Not Reset and Power-down
    digitalWrite(NRSTPD, HIGH);
}

Er wordt dus 5V op een pin van de RFID gezet. Blijkbaar kan dat dus geen kwaad. Is dat dan altijd zo met 3.3V apparaatjes, dat je er wel voor moet zorgen dat de voeding op 3.3V zit maar dat je de rest van de poorten gewoon 5V erop kan zetten ?

Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
Het hangt van het apparaatje af of die 5v op een 3.3v pin accepteert, accepteert ie dat niet, dan heb je een logic level converter nodig. Die kun je mbv transistors** wel bouwen en anders voor een eurootje of 2 zo op ebay vinden. Bijv http://www.ebay.co.uk/itm...2C-UART-SPI-/321251662322? (al is de betreffende advertentie niet meer actief).

** http://playground.arduino...i-directionalLevelShifter , CTRL+F "Using 4 transistors"

[ Voor 16% gewijzigd door Raven op 02-04-2014 16:12 ]

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!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Ok bedankt, is wel iets om op te letten dus. Tot nu toe heb ik niet te maken gekregen met spanningsverschillen tussen micro en aangesloten hardware.

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Sommige 3.3V spul is 5V tolerant, daar mag je gewoon 5V op zetten. Andersoms, 3.3V op 5V werkt eigenlijk nagenoeg altijd. Enkel wanneer je een heel laag stroomverbruik nodig hebt moet je hierop letten.

Van 5V -> 3.3V kan je ook gewoon een weerstandsdelertje gebruiken als eisen qua snelheid niet hoog zijn. Als je bijvoorbeeld een I2C device hebt dan doen veel wel heel moeilijk met level shifters, maar gewoon pull-up naar 3.3V ipv 5V zou zo goed als altijd moeten werken.

Even gekeken naar dat RFID spul, dat is niet 5V tolerant, dus het boardje zal wel wat weerstanden/diodes hebben om dat te generen (als ik zo zie zit er niks actiefs op).

[ Voor 15% gewijzigd door Sissors op 02-04-2014 16:26 ]


Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
kitao schreef op woensdag 02 april 2014 @ 16:19:
Ok bedankt, is wel iets om op te letten dus. Tot nu toe heb ik niet te maken gekregen met spanningsverschillen tussen micro en aangesloten hardware.
Jep, lees die pagina maar eens helemaal, dan weet je iig hoe en wat.

[ Voor 65% gewijzigd door Raven op 02-04-2014 16:21 ]

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!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
[...]Andersoms, 3.3V op 5V werkt eigenlijk nagenoeg altijd.[...]
Want een logische 0 is van 0-0.8V en logisch 1 is van ca2 tot 5V. Met dat stroomverbruik vind ik wat lastiger.
De links zal ik doorlezen, tnx
Edit:
Even gekeken naar dat RFID spul, dat is niet 5V tolerant, dus het boardje zal wel wat weerstanden/diodes hebben om dat te generen (als ik zo zie zit er niks actiefs op).
Ik heb de MFRC522 al in gebruik genomen. Voeding 3.3V van de uno gepakt. Maar de andere pinnen die nodig zijn voor communicatie daar zit inderdaad niks tussen. Is ook niks over geschreven in de instructies. Ik was van plan om te proberen of ik naar een kaart kon schrijven en toen dacht ik ineens aan een level converter.
Met enkel lezen blijkt dat voorlopig niet nodig te zijn, module doet het nog.

[ Voor 60% gewijzigd door kitao op 02-04-2014 16:36 ]


Acties:
  • 0 Henk 'm!

  • CrashOverDrive
  • Registratie: Augustus 2005
  • Laatst online: 18:19
Ik zoek even advies over of ik als een idioot bezig ben :P

Ik ben bezig met een dimmer (230v) die vanaf het netwerk aangestuurd kan worden. Nu had ik eerst een eigen ontwerpje gemaakt, netwerkchip en spul eromheen. Maar bij Farnell kost alleen al een kale RJ45 pcb connector bijna hetzelfde als een compleet Arduino ethernet shield (9,80$ incl shipping).

Dus ik ben nu bezig met een print die kwa footprint (en pinout) een Arduino is, zodat het EthernetShield er netjes op past. Alleen dan met de dimmer op diezelfde print. Maar hoewel ik het zwakstroom en sterkstroom stuk van elkaar heb gescheiden met gaten in de pcb, zekering erop, connectie naar de Atmega via optocouplers, etc. Hou ik er toch een vieze smaak aan over in de mond. Er loopt straks wel 230V op een halve cm onder een chinees netwerkshieldje :+

Kwa wattage zal het wel meevallen, er komen 1 tot maximaal 2 (led) lampen op van 230V / 4.2W. (dimmerschakeling is al getest met de lamp, die werkt, blijft toch roulette met die led dingen >:) ) maar toch voelt het fout.

Hoe denken jullie erover? Beter op een losse print en die dan met een header in de zijkant van een (custom) arduino duwen? Of gewoon zo laten.

Afbeeldingslocatie: http://file.fiberhosted.nl/uploads/596129duinodimmer.jpg

[ Voor 5% gewijzigd door CrashOverDrive op 03-04-2014 05:24 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
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
const int BLED=9;    //Blue LED on Pin 9
const int GLED=10;   //Green LED on Pin 10
const int RLED=11;   //Red LED on Pin 11
const int BUTTON=2;    //The Button is connected to pin 2
boolean lastButton = LOW;    //Last Button State
boolean currentButton = LOW; //Current Button State
int ledMode = 0;             //Cycle between LED states
void setup(){
  pinMode (BLED, OUTPUT);   //Set Blue LED as Output
  pinMode (GLED, OUTPUT);   //Set Green LED as Output
  pinMode (RLED, OUTPUT);   //Set Red LED as Output
  pinMode (BUTTON, INPUT);  //Set button as input (not required)
}
// Debouncing Function * Pass it the previous button state,* and get back the current debounced button state.
boolean debounce(boolean last)
{
  boolean current = digitalRead(BUTTON);       //Read the button state
  if (last != current)                         //if it's different...
  {
    delay(5);                                  //wait 5ms
    current = digitalRead(BUTTON);             //read it again
  }
  return current;                              //return the current value
}
//LED Mode Selection* Pass a number for the LED state and set it accordingly
void setMode(int mode)
{
  //RED
  if (mode == 1)
  {
    digitalWrite(RLED, HIGH);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
  //GREEN
  else if (mode == 2)
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, HIGH);
    digitalWrite(BLED, LOW);
  }
  //BLUE
  else if (mode == 3)
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, HIGH);
  }
  //PURPLE (RED+BLUE)
  if (mode == 4)
  {
    analogWrite(RLED, 127);
    analogWrite(GLED, 0);
    analogWrite(BLED, 127);
  }
  //TEAL (BLUE+GREEN)
  else if (mode == 5)
  {
    analogWrite(RLED, 0);
    analogWrite(GLED, 127);
    analogWrite(BLED, 127);
  }
  //ORANGE (GREEN+RED)
  else if (mode == 6)
  {
    analogWrite(RLED, 127);
    analogWrite(GLED, 127);
    analogWrite(BLED, 0);
  }
  //WHITE (GREEN+RED+BLUE)
  else if (mode == 7)
  {
    analogWrite(RLED, 85);
    analogWrite(GLED, 85);
    analogWrite(BLED, 85);
  }
  //OFF (mode = 0)
  else
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
}
void loop()
{
  currentButton = debounce(lastButton);           //read deboucned state
  if (lastButton == LOW && currentButton == HIGH) //if it was pressed...
  {
    ledMode++;                                    //increment the LED value
  }
  lastButton = currentButton;                     //reset button value
  //if you have cycled through the different options, reset the counter to 0
  if (ledMode == 8) ledMode = 0;
  setMode(ledMode);                              //change the LED state
}

http://exploringarduino.com/content/ch2/ fig 7 hoort erbij
Dit laat dus een RGB verkleuren op druk van knop, 0 t/m 7
Nu wilde ik de knopstand serial printen als volgt :
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
void loop() 
{ 
  currentButton = debounce(lastButton);           //read deboucned state 
  if (lastButton == LOW && currentButton == HIGH) //if it was pressed... 
  { 
    ledMode++;                                    //increment the LED value 
  } 
  lastButton = currentButton;                     //reset button value 
  //if you have cycled through the different options, reset the counter to 0 
  if (ledMode == 8) ledMode = 0; 
  Serial.println(ledMode);
  setMode(ledMode);                              //change the LED state 
}

Dan stort heel de lichtsterkte in elkaar. Serialprint had toch te maken met RX/TX ?
Die doen helemaal niet mee in dit programma waarom dan slappe lichtopbrengst ?
Aangenomen dat het invloed heeft op de PWM wat is dan het verband of wordt de loop gewoon enorm vertraagd door één regeltje Serial.print ?

[ Voor 0% gewijzigd door kitao op 03-04-2014 09:43 . Reden: Typo ]


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
If/elseif/elseif/elseif zou ik gewoon doen met een switch/case.

Edit: ja, de serial print is een 'dure' call die je zult merken in je pwm. Beter kun je een interrupt service routine gebruiken voor je pwm logica, en die in de loop bijsturen.

[ Voor 58% gewijzigd door RobV op 03-04-2014 09:04 ]

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


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Dure dwz tijdverslindend neem ik aan.
Bedankt voor de switch case tip, die ga ik proberen. Maar ipv Interrupt had ik dit bedacht:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void loop()
{  
  currentButton = debounce(lastButton);           //read deboucned state
  if (lastButton == LOW && currentButton == HIGH) //if it was pressed...
  {
    ledMode++;                                    //increment the LED value
    Serial.println(ledMode);
  } 
  lastButton = currentButton;                     //reset button value  
  //if you have cycled through the different options, reset the counter to 0
  if (ledMode == 8)
  {
    ledMode = 0;
    Serial.println(ledMode); 
  }
  setMode(ledMode);   //change the LED state      
}

Nu zie ik dan enkel een getalletje veranderen op de monitor als de knop wordt ingedrukt en bij het vorige voorbeeld bleven de getallen scrollen. Lichtsterkte blijft ook goed.
Maar waarom vraag je het dan ? Nou, omdat ik niet had verwacht dat serialprint zoveel zou vertragen.
Want dat is de hele oorzaak neem ik aan ?

[ Voor 1% gewijzigd door kitao op 03-04-2014 09:49 . Reden: typo ]


Acties:
  • 0 Henk 'm!

Verwijderd

CrashOverDrive schreef op donderdag 03 april 2014 @ 05:22:
Ik zoek even advies over of ik als een idioot bezig ben :P

Ik ben bezig met een dimmer (230v) die vanaf het netwerk aangestuurd kan worden. Nu had ik eerst een eigen ontwerpje gemaakt, netwerkchip en spul eromheen. Maar bij Farnell kost alleen al een kale RJ45 pcb connector bijna hetzelfde als een compleet Arduino ethernet shield (9,80$ incl shipping).

Dus ik ben nu bezig met een print die kwa footprint (en pinout) een Arduino is, zodat het EthernetShield er netjes op past. Alleen dan met de dimmer op diezelfde print. Maar hoewel ik het zwakstroom en sterkstroom stuk van elkaar heb gescheiden met gaten in de pcb, zekering erop, connectie naar de Atmega via optocouplers, etc. Hou ik er toch een vieze smaak aan over in de mond. Er loopt straks wel 230V op een halve cm onder een chinees netwerkshieldje :+

Kwa wattage zal het wel meevallen, er komen 1 tot maximaal 2 (led) lampen op van 230V / 4.2W. (dimmerschakeling is al getest met de lamp, die werkt, blijft toch roulette met die led dingen >:) ) maar toch voelt het fout.

Hoe denken jullie erover? Beter op een losse print en die dan met een header in de zijkant van een (custom) arduino duwen? Of gewoon zo laten.

[afbeelding]
gewoon zo laten, ziet er keurig uit imho (en het vermogen is laag) 8)

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
kitao schreef op donderdag 03 april 2014 @ 09:30:

Maar waarom vraag je het dan ? Nou, omdat ik niet had verwacht dat serialprint zoveel zou vertragen.
Want dat is de hele oorzaak neem ik aan ?
Dat is idd de oorzaak. Je spuugt zóveel (zovaak) data over de serial dat de bus moet wachten om het te verzenden. Daardoor stokt de pwm idd. Als je nou heeel vaak op het knopje drukt, kun je misschien merken dat de lichtsterkte iets zwakker wordt. Dat is met een interrupt wel op te lossen maar ik zou me er niet te druk over maken.

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


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Dat is met een interrupt wel op te lossen maar ik zou me er niet te druk over maken.
Ga ik ook niet doen. Ik dacht met gemak door dat hoofdstuk heen te fietsen maar ik voeg eén regeltje toe en was gelijk een uur verder.
Interrupt komt later wel weer aan bod. Bedankt voor je toelichting Rob, is helder nu. :)

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
kitao schreef op donderdag 03 april 2014 @ 09:56:
] Ik dacht met gemak door dat hoofdstuk heen te fietsen maar ik voeg eén regeltje toe en was gelijk een uur verder.
Welkom in de wondere wereld van het fröbelen

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


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
RobV schreef op donderdag 03 april 2014 @ 10:59:
Welkom in de wondere wereld van het fröbelen
Fröbelen = Maken op een niet vakkundige manier
Helemaal mee eens. Wie maakt er nou een micro waar de boel van in elkaar stort als je iets wil uitprinten.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Raven schreef op woensdag 02 april 2014 @ 16:08:
Het hangt van het apparaatje af of die 5v op een 3.3v pin accepteert, accepteert ie dat niet, dan heb je een logic level converter nodig. Die kun je mbv transistors** wel bouwen en anders voor een eurootje of 2 zo op ebay vinden. Bijv http://www.ebay.co.uk/itm...2C-UART-SPI-/321251662322? (al is de betreffende advertentie niet meer actief).
** http://playground.arduino...i-directionalLevelShifter , CTRL+F "Using 4 transistors"
Deze actieve gevonden: http://www.ebay.com/itm/L...ain_0&hash=item4ad1841de1
Kost iets meer dan 2 euro maar dat terzijde.
Mij ging het om SPI, de andere link van jou gaat over I2C. (toch gaf het beter inzicht, dus bedankt daarvoor)
SPI gebruikt 4 lijnen, miso/mosi/ss/clk.
Nou kijk ik op die poolse pagina, staat er enkel dit :
Afbeeldingslocatie: http://s29.postimg.org/dzlk8aar7/Level_converter.jpg
Dan is me op dit moment nog niet helemaal duidelijk hoe ik dan SPI moet aansluiten terwijl ze dit wel in de omschrijving hebben staan :
Logic Level Converter 3.3/5V I2C UART SPI

Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
Die waar jij naar linkt is dezelfde, alleen staat er dus wel SPI bij. Eigenlijk maakt dat helemaal niet uit, maar goed. Waar je rekening mee moet houden is bij welke pinnen het dataverkeer welke kant (of beide kanten) op moet kunnen. Op dat printje zijn kanalen 1 en 4 bidirectioneel, 2 en 3 zijn dat niet, daar kan het maar 1 kant op, niet heen en weer. Nou weet ik niet zo uit het hoofd hoe het met SPI zit, maar bij I2C moet de data op beide kabels beide kanten op kunnen, bij I2C moet je dus kanalen 1 en 4 gebruiken.

Voor SPI zou je even na moeten kijken of de data op de 4 kabels beide kanten op moet kunnen.

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!

Verwijderd

Afbeeldingslocatie: http://i.imgur.com/qMZ9rn4.jpg

- logic level shop

voor SPI / I2C moet je SOMS een zgn ' bidirectionele level converter hebben, die werkt 2 kanten op

Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online
@hierboven: Weet je dat heel zeker? Ik heb net op Wikipedia: Serial Peripheral Interface Bus gekeken (ok, niet de meest betrouwbare bron, maar:
"Signals are unidirectional"

Afbeeldingslocatie: http://upload.wikimedia.org/wikipedia/commons/e/ed/SPI_single_slave.svg

Bij I2C klopt het dat het bidirectioneel is.

[ Voor 6% gewijzigd door Raven op 03-04-2014 11:38 ]

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!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Raven schreef op donderdag 03 april 2014 @ 11:31:
Die waar jij naar linkt is dezelfde, alleen staat er dus wel SPI bij. Eigenlijk maakt dat helemaal niet uit, maar goed. Waar je rekening mee moet houden is bij welke pinnen het dataverkeer welke kant (of beide kanten) op moet kunnen. Op dat printje zijn kanalen 1 en 4 bidirectioneel, 2 en 3 zijn dat niet, daar kan het maar 1 kant op, niet heen en weer. Nou weet ik niet zo uit het hoofd hoe het met SPI zit, maar bij I2C moet de data op beide kabels beide kanten op kunnen, bij I2C moet je dus kanalen 1 en 4 gebruiken.

Voor SPI zou je even na moeten kijken of de data op de 4 kabels beide kanten op moet kunnen.
Jouw link en mijn link hebben allebei dezelfde titel I2C/UART/SPI

Ik begrijp wat je bedoelt denk ik.
SDA en SCL wordt dan MISO/MOSI op kanaal 1 en 4 en SS en CLK wordt dan kanaal 2 en 3 want (weet ik nog niet zeker, maar lijkt me waarschijnlijk) SS en CLK gaan toch maar 1 richting op.

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
SPI is unidirectioneel, maar wel beide kanten op. Dus een IC'tje dat maar één kant op werkt gaat het niet doen, een bidirectionele wel.
Pagina: 1 ... 48 ... 96 Laatste