Vraag


Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
Ik ben al een poosje bezig met m'n Arduino gestuurde macro rail installatie op een Durst vergroter rail.

Foto's van het project: https://www.flickr.com/ph...016173/with/30413843293/#
Origineel project: http://pulsar124.wikia.com/wiki/Fast_Stacker

Eind vorig jaar heb ik al het mechanische en elektronische geknutsel voltooid. En nu werd het eens tijd om er echt wat mee te gaan doen.
Tot nu toe heb ik vooral verlekkerd 8) zitten kijken hoe de motorunit op en neer beweegt langs de verticale rail. En hoe ik de hele unit, met DSLR erop, heen en weer kon sturen. Gewoon cool om te zien. :+

Afijn, software nog maar eens gefinetuned, wat individuele parameters aan mijn DSLR/rail combo aangepast. Iedere keer weer geüpload, af en toe wat typefoutjes verbeterd, etc.

Totdat....totdat ik er achter kwam dat 1 kolom van mijn matrix keyboard (2, 5, 8, 0, toetsen) niet reageerde. Ik dacht eerst aan een slechte verbinding o.i.d. Alles gecheckt en doorgemeten. Vanaf keyboard tot aan de pinnen op de Arduino. Hmmm, gewoon allemaal doorverbonden. En iedere individuele toetsaanslag geeft ook daadwerkelijk een verbinding in de betreffende kolom/rij combinatie.
Hmmm, dat is het dus niet.

Softwarematig de functie van kolom 2 en 3 omgewisseld om te zien of het probleem meegaat. Idd; de functionaliteit van kolom 2 wordt nu gedaan door de toetsen in kolom 3.
Ok, volgende stap. De twee pinaansluitingen op de Arduino omgewisseld om te zien wat er dan gebeurd.
Nu werkt kolom 2 weer niet.
Zou je hieruit nu kunnen concluderen dat die betreffende PIN op de Arduino overleden is?
(in mijn geval PIN 12)
Iemand wel eens meegemaakt dat één specifieke PIN gewoon niet functioneert?

Nu is in het originele ontwerp (zie de eerdere links) PIN10 nog ongebruikt. (schema)
Ik dacht, dan kan ik de functie van PIN12 (als die inderdaad kapot zou zijn) wellicht overzetten naar PIN10. Kwestie van de aansluiting op PIN10 zetten, in de s/w '12' door '10' vervangen en klaar.
Maar dan werkt het helemaal niet meer?

Heeft dat wellicht iets te maken met hardware/software SPI aansturing van het display, zodat de functionaliteit van PIN10 niet meer beschikbaar is o.i.d?
(ik gebruik trouwens de h/w SPI aansturing en pin10 is elektrisch nergens op aangesloten)
Ik zit zelf niet diep genoeg in het Arduino gebeuren om dit te kunnen beoordelen.

Iemand die iets kan bijdragen aan dit probleem?

En nee, ik heb helaas geen reserve Arduino liggen om die ff te swappen.


stukje code wat de kolom/rij definitie bepaalt:
...
//////// Keypad stuff: ////////
const byte rows = 4; //four rows
const byte cols = 4; //four columns
char keys[rows][cols] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// Hardware v1.1: 4, 7, 12, A1 (was 4, 10, 12, A1; pin 10 was freed to be able to use hardware SPI for LCD)
byte rowPins[rows] = {0, 1, 2, 6}; //connect to the row pinouts of the keypad
byte colPins[cols] = {A1, 12, 7, 4}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );
...

   Mooie Plaatjes   

Beste antwoord (via ehtweak op 03-03-2017 22:50)


  • SH4D3H
  • Registratie: Juni 2004
  • Laatst online: 27-02 23:46
Heb je 'm al eens geprobeerd zonder het scherm? Of iig alle SPI verwijzingen even 'commenten'. PB4/PIN 12 is namelijk de pin die wordt gebruikt voor MISO. Mogelijk zit daar een conflict. En dan de output van je keypad controleren via de SerialMonitor? :)

Alle reacties


Acties:
  • 0 Henk 'm!

  • WK100
  • Registratie: Februari 2011
  • Laatst online: 13-07 21:35
Dus even samengevat:

Als de toetsen ingedrukt worden ontvangt de arduino een elektrisch signaal. (elektrisch OK)

Als je de kolommen in de code omwisselt verschuift het probleem ook naar de andere kolom. (probleem zit aan de pin vast)

Is er een foutje gemaakt met het zetten van pin 12 als input?

[ Voor 8% gewijzigd door WK100 op 26-02-2017 11:53 ]


Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
WK100 schreef op zondag 26 februari 2017 @ 11:52:
Dus even samengevat:

Als de toetsen ingedrukt worden ontvangt de arduino een elektrisch signaal. (elektrisch OK)

Als je de kolommen in de code omwisselt verschuift het probleem ook naar de andere kolom. (probleem zit aan de pin vast)
Idd.
WK100 schreef op zondag 26 februari 2017 @ 11:52:
Is er een foutje gemaakt met het zetten van pin 12 als input?
Zoals ik al zei, de software heb ik niet zelf gemaakt, alleen wat omgevingsparameters aangepast.

Maar het lijkt me niet. De gebruikte pinnen worden wel vaker aangepast in de versies van het hardware ontwerp. En het enige wat er dan verandert is de nummerdefinitie van die pinnen.
De hele keyboard I/O wordt door standaard routines afgehandeld (voor zover ik kan zien). En die krijgen de PIN nummer parameters gewoon doorgestuurd. (toch?)

er wordt een keypad.h en keypad.ino include gebruikt.
Voor zover ik kan zien (en begrijpen), wordt dit stukje code uit keypad.h:
// bperrybap - Thanks for a well reasoned argument and the following macro(s).
// See http://arduino.cc/forum/i...sg1069480.html#msg1069480
#ifndef INPUT_PULLUP
#warning "Using pinMode() INPUT_PULLUP AVR emulation"
#define INPUT_PULLUP 0x2
#define pinMode(_pin, _mode) _mypinMode(_pin, _mode)
#define _mypinMode(_pin, _mode) \
do { \
if(_mode == INPUT_PULLUP) \
pinMode(_pin, INPUT); \
digitalWrite(_pin, 1); \
if(_mode != INPUT_PULLUP) \
pinMode(_pin, _mode); \
}while(0)
#endif


gebruikt om de INPUT functie te zetten. Correct?

Als ik trouwens, om wat te testen, b.v. de rijnummers omwissel in de software en vervolgens ook de rijnummers connectorpinnetjes omwissel, dan blijft het allemaal ok werken. Dus het lijkt me niet dat van één specifieke PIN12 de I/O definitie niet correct zou zijn. (?)

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • Lennyz
  • Registratie: Januari 2010
  • Laatst online: 07-07 14:56
Kun je niet even een led lampje (of iets anders) aan te sluiten aan de desbetreffende pin? Dan bijvoorbeeld het standaard voorbeeld van 'blink' uploaden. Dan weet je het antwoord meteen.

Acties:
  • 0 Henk 'm!

  • WK100
  • Registratie: Februari 2011
  • Laatst online: 13-07 21:35
ehtweak schreef op zondag 26 februari 2017 @ 12:26:
gebruikt om de INPUT functie te zetten. Correct?
Dit vervangt de standaard pinMode-functie met een custom pinMode-functie die een pull-up ondersteunt.
Je moet zoeken naar de plaats waar pinMode aangeroepen wordt. Ergens moet 'pinMode(12, INPUT)' staan of iets wat daarop lijkt.
Kun je de code niet uploaden naar GitHub zodat wij mee kunnen kijken?
Als ik trouwens, om wat te testen, b.v. de rijnummers omwissel in de software en vervolgens ook de rijnummers connectorpinnetjes omwissel, dan blijft het allemaal ok werken. Dus het lijkt me niet dat van één specifieke PIN12 de I/O definitie niet correct zou zijn. (?)
Die zin begrijp ik niet. Doet het apparaat wat het moet doen of blijft het probleem zich voordoen?

Edit:
Ik wist de code te vinden op GitHub. Op het eerste gezicht zie ik niks vreemds aan de code waarmee de pins aangestuurd worden.
Lennyz schreef op zondag 26 februari 2017 @ 12:36:
Kun je niet even een led lampje (of iets anders) aan te sluiten aan de desbetreffende pin? Dan bijvoorbeeld het standaard voorbeeld van 'blink' uploaden. Dan weet je het antwoord meteen.
Dan is dit het volgende wat ik even zou proberen.

[ Voor 24% gewijzigd door WK100 op 26-02-2017 13:32 ]


Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
WK100 schreef op zondag 26 februari 2017 @ 13:20:
[...]


[...]

Die zin begrijp ik niet. Doet het apparaat wat het moet doen of blijft het probleem zich voordoen?
Wellicht niet duidelijk genoeg. Maar daar bedoelde ik het volgende mee:
Als ik, om te testen, bijvoorbeeld twee pinnummers verwissel hardwarematig, en hetzelfde doe softwarematig, dan blijft het uiteindelijke gedrag hetzelfde.
M.a.w. de pinnummers worden keurig als parameters meegegeven, niet hardcoded.

Uiteraard blijft m'n issue met specifiek PIN12 wel voortbestaan. :-(
Lennyz schreef op zondag 26 februari 2017 @ 12:36:
Kun je niet even een led lampje (of iets anders) aan te sluiten aan de desbetreffende pin? Dan bijvoorbeeld het standaard voorbeeld van 'blink' uploaden. Dan weet je het antwoord meteen.
Goed idee. d:)b
Ik moet idd maar eens blink van stal halen en dan de default PIN13 ff omzetten naar PIN12 (en wellicht andere PIN#) om e.e.a. te checken.
Komt alleen slecht uit, net nu m'n soldeerstation buiten de deur is... ;)
En alles zit uiteraard strak ingebouwd, dan is het altijd zo balen als je alles weer open mot slopen...

BTW: nu ik verder zoek op het www; dan kom ik wel eens vaker meldingen tegen van niet meer functionerende individuele PINs. Maar dan is het vaak opgeblazen door verkeerd aangelegde spanning of te zware belasting o.i.d. In mijn geval hangt er alleen maar een matrix toetsenbordje achter. Allemaal passief spul. :?

[ Voor 23% gewijzigd door ehtweak op 26-02-2017 15:44 ]

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
[vervolg]
Het soldeerstation is weer terug waar 'ie hoort; in mijn knutselhok. :)

Control unit op de operatietafel, de UNO R3 klaar voor chirurgie. ;)
Afbeeldingslocatie: https://c1.staticflickr.com/6/5457/31277665322_b440b2cf99_n.jpg
Een LEDje met serieweerstand, twee draadjes en een pin header stekertje in elkaar gezet.

BLINK geladen op de Arduino.
  • Eerst de standaard test met de ingebouwde LED op pin 13; blinkt --> OK.
  • (als 1ste test)PIN10 gedefinieerd in BLINK, LEDje aangesloten op PIN10, blinkt --> PIN10 als output OK.
  • Nu PIN12 (de 'verdachte') gedefinieerd, LEDje aangesloten op PIN12; blinkt --> PIN12 als output OK.
  • Ook maar ff PINA0 geprobeerd, LEDje aangesloten op PINA0; blinkt --> PINA0 als output OK.
He, da's vreemd, PIN12, gebruikt als output poort is blijkbaar niet defect.
(ik kan niet beoordelen of dat nu ook automatisch betekent dat de input poort functionaliteit ook correct zou moeten werken)
Hum, wat nu???

Ikke niet snap. 8)7

Ok, de boel weer in de originele toestand teruggezet. De originele stacker s/w weer teruggeladen. Multimeter specifiek tussen de pinnen waarop die betreffende kolom van het matrixkeyboard gedetekteerd zou moeten worden, aangesloten. En ja, er wordt echt elektrisch (laag ohmige weerstand) contact gemaakt op de betreffende kruispunten van het matrix toetsenbordje als je de gewenste toets indrukt.
Maar die hele rij (waarop PIN12 is aangesloten) wordt gewoonweg NIET gedetecteerd.
Wat, o wat, kan ik toch over het hoofd zien? :o En/of wat zou ik nog meer kunnen testen?

[ Voor 25% gewijzigd door ehtweak op 28-02-2017 21:27 ]

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • AlexanderB
  • Registratie: Maart 2007
  • Laatst online: 09-05 19:05

AlexanderB

7800 rpm

Word 12 als output of als input, danwel input_pullup gebruikt door de software?

Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
@AlexanderB zie: ehtweak in "Arduino UNO R3; 1 Digital PIN kapot?"
voor zover ik begrijp, als input_pullup

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • AlexanderB
  • Registratie: Maart 2007
  • Laatst online: 09-05 19:05

AlexanderB

7800 rpm

Dan kan het inderdaad zijn dat de interne pull-up weerstand dood is, of de input functie zelf.

Je zou kunnen proberen met een externe pull-up, kijken of ie dan weer werkt?

[ Voor 29% gewijzigd door AlexanderB op 28-02-2017 21:39 ]


Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
AlexanderB schreef op dinsdag 28 februari 2017 @ 21:38:
Dan kan het inderdaad zijn dat de interne pull-up weerstand dood is, of de input functie zelf.

Je zou kunnen proberen met een externe pull-up, kijken of ie dan weer werkt?
Interne pull-up R dood? Die begrijp ik niet helemaal, bedoel je daarmee een interne pull-up weerstand op het Arduino boardje?
En wat zou ik dan kunnen doen omdat te omzeilen? Extra 10k weerstandje tussen die PIN12 en de +Vcc o.i.d.?

Maar de input functie (software bedoel je, neem ik aan) kan toch niet zomaar voor één specifieke PIN12 defect zijn?

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • AlexanderB
  • Registratie: Maart 2007
  • Laatst online: 09-05 19:05

AlexanderB

7800 rpm

Intern in de chip zit een weerstand die je met INPUT_PULLUP activeert, die is (ongeveer) 10k naar VCC inderdaad.
Extra weerstandje ter vervanging inderdaad een optie om te proberen.

Kan zeker wel stuk zijn, ik bedoel, zou niet zomaar stuk moeten gaan, maar het kan in theorie wel.

Acties:
  • 0 Henk 'm!

  • Lennyz
  • Registratie: Januari 2010
  • Laatst online: 07-07 14:56
ehtweak schreef op dinsdag 28 februari 2017 @ 21:42:
[...]

Interne pull-up R dood? Die begrijp ik niet helemaal, bedoel je daarmee een interne pull-up weerstand op het Arduino boardje?
En wat zou ik dan kunnen doen omdat te omzeilen? Extra 10k weerstandje tussen die PIN12 en de +Vcc o.i.d.?

Maar de input functie (software bedoel je, neem ik aan) kan toch niet zomaar voor één specifieke PIN12 defect zijn?
Ja een extra weerstand van 10k tussen PIN12 en de ground of 5v.

En dan pin12 aanpassen in de code:

pinMode(12, INPUT_PULLUP);

veranderen naar:

pinMode(12, INPUT);

Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
Lennyz schreef op woensdag 1 maart 2017 @ 10:00:
[...]


Ja een extra weerstand van 10k tussen PIN12 en de ground of 5v.
?
Bedoel je nou tussen PIN12 en GND of tussen PIN12 en +Vcc, of beiden?
Lennyz schreef op woensdag 1 maart 2017 @ 10:00:
[...]

En dan pin12 aanpassen in de code:

pinMode(12, INPUT_PULLUP);

veranderen naar:

pinMode(12, INPUT);
Tja...? Nogmaals voor de duidelijkheid; het is niet mijn software... En er is geen aparte I/O definitie voor alleen die PIN, dat wordt in de keyboard routine geregeld, voor alle rows/columns van het matrix keyboard...
Dus volgens mij gaat dat niet lukken. (?)

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • AlexanderB
  • Registratie: Maart 2007
  • Laatst online: 09-05 19:05

AlexanderB

7800 rpm

VCC, en code hoef je daarvoor niet aan te passen op zich..

Acties:
  • 0 Henk 'm!

  • jbhc
  • Registratie: Juli 2007
  • Laatst online: 10:19
ehtweak schreef op woensdag 1 maart 2017 @ 10:05:
[...]


[...]

Tja...? Nogmaals voor de duidelijkheid; het is niet mijn software... En er is geen aparte I/O definitie voor alleen die PIN, dat wordt in de keyboard routine geregeld, voor alle rows/columns van het matrix keyboard...
Dus volgens mij gaat dat niet lukken. (?)
Waarom zou dat niet kunnen. Het is niet alsof die library's wezenlijk anders zijn dan de arduino sketches.
Kwestie van goed kijken wat ze doen.

Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
@jbhc
Ik kan de source wel aanpassen en opnieuw uploaden, maar dan zou de definitie voor ALLE rows/columns aangepast zijn.
Terwijl ik slechts met één specifieke PIN klaarblijkelijk een probleem heb.
De PINnrs worden namelijk als parameters uit een tabel meegegeven. E.e.a. afhankelijk van de specifieke aansluitingen en hardware verschillen tussen pinbezettingen op matrixkeyboards en/of wijzigingen in het schema van dit project. Daardoor worden soms andere PINnrs toegekend aan bepaalde functies.

En als ik, om te testen of de interne pull-up R van PIN12 defect zou zijn, aan die ene PIN12 een extra pull-up R bevestig, vervolgens de code aanpas (die geldig is voor ALLE PINs), dan zou ik toch pull-up weerstanden aan ALLE gebruikte PINs moeten hangen?

Maar ik ga vandaag maar weer eens het soldeerstation opstoken, wat onderdelen opsnorren en weer wat experimenteren.
Wel frustrerend; alles zag er goed uit, werkt op zich prima, alleen die ene rij toetsjes wil niet meewerken. En sommige van die knoppen heb ik nou juist nodig om bepaalde functies te kunnen gebruiken. :/
Naar mijn idee heb ik zorgvuldig gewerkt, alles dubbel gecontroleerd, en ben nu al weer aardig lang bezig met fout zoeken naar zoiets 'simpels'.
Ik heb nog steeds het idee dat het iets eenvoudigs is, wat ik over het hoofd zie. Maar tja, wat? |:(

En ja, dit project, en andere varianten, zijn door mij en anderen al diverse malen gebouwd.

...to be continued...

[ Voor 4% gewijzigd door ehtweak op 01-03-2017 11:02 ]

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • jbhc
  • Registratie: Juli 2007
  • Laatst online: 10:19
Je kunt er natuurlijk ook even een andere uno inzetten. Ik weet niet waar je woont maar je mag er anders wel 1 van mij lenen :)

Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
[vervolg][het wordt steeds vreemder]

Het volgende getest:
  • Pull up weerstandje aan PIN12 gehangen; maakt geen verschil
  • Uiteindelijk hele keypad losgehaald en kolom/rij toetsdruk gesimuleerd door gewoon twee draadje op betreffende kolom/rij aan te sluiten en door te verbinden.
  • Dit werkte voor iedere toetscombinatie; behalve voor, je raadt het al, de kolom die aan PIN12 hangt.
  • Ok, nogmaals maar eens wat husselen, andere rij gedefinieerd op PIN12, en ja hoor die andere rij werkt dan niet. M.a.w. het heeft echt met die PIN12 te maken.
Kon toch een verse Arduino Uno op de kop tikken. (fris uit de ESD folie).
  • De nieuwe Arduino voorzien van een rijtje DIP headers zodat ik alles kon overpluggen
  • 'Verdachte' Arduino er tussenuit gehaald.
  • 'Verse' Arduino aangesloten.
  • Eerst maar eens een stelletje BLINK testjes losgelaten; alle PINs werken goed
  • De stacker software geladen op de 'verse' Arduino.
  • Power on, en... :-( precies hetzelfde probleem! :(
WTF?

Dan begint het toch echt op een software probleem te lijken.
Maar ja, waarom dan problemen met die specifieke PIN12?
Want

//////// Keypad stuff: ////////
const byte rows = 4; //four rows
const byte cols = 4; //three columns
char keys[rows][cols] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[rows] = {0, 1, 2, 6}; //connect to the row pinouts of the keypad
byte colPins[cols] = {A1, 12, 7, 4}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );


als ik het in het stukje code wat heen en weer schuif met de PIN definities, pinnen omwisselen e.d. dan schuift idd de bijbehorende toets rij/kolom wel degelijk op. Maar alles wat je op PIN12 aansluit wordt niet gezien...
En ik heb de andere includes doorgekeken en kan niks vinden wat eventueel PIN12 bezet zou houden en/of iets anders doet met die PIN12. Want in principe is alles op 1 plek gedefinieerd, en verder nergens anders.

Iemand nog lumineuze ideeën? :+
Ik heb de originele maker ook al deze info gegeven, maar hij staat ook voor een raadsel.
http://pulsar124.wikia.com/wiki/Troubleshooting
Blijkbaar doe ik iets fout, maar wat? 8)7 |:(

extra info: zowel getest met Arduino IDE 1.6.12 en de laatste versie 1.8.1; maakt geen verschil.

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • jbhc
  • Registratie: Juli 2007
  • Laatst online: 10:19
2 vragen:

- Heb je het ooit wel eens wel werkend gehad?
- Komt er wel 5 Volt uit de arduino? (Ik heb er hier een liggen waar 3,3V uit komt)

Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
jbhc schreef op woensdag 1 maart 2017 @ 18:58:
2 vragen:

- Heb je het ooit wel eens wel werkend gehad?
Deze uitvoering nog niet helemaal, alles werkt, op die ene rij toetsen na.

zoals ik al zei in de openingspost:
Eind vorig jaar heb ik al het mechanische en elektronische geknutsel voltooid. En nu werd het eens tijd om er echt wat mee te gaan doen.
Tot nu toe heb ik vooral verlekkerd 8) zitten kijken hoe de motorunit op en neer beweegt langs de verticale rail. En hoe ik de hele unit, met DSLR erop, heen en weer kon sturen. Gewoon cool om te zien. :+

Afijn, software nog maar eens gefinetuned, wat individuele parameters aan mijn DSLR/rail combo aangepast. Iedere keer weer geüpload, af en toe wat typefoutjes verbeterd, etc.

Totdat....totdat ik er achter kwam dat 1 kolom van mijn matrix keyboard (2, 5, 8, 0, toetsen) niet reageerde. Ik dacht eerst aan een slechte verbinding o.i.d. Alles gecheckt en doorgemeten. Vanaf keyboard tot aan de pinnen op de Arduino. Hmmm, gewoon allemaal doorverbonden. En iedere individuele toetsaanslag geeft ook daadwerkelijk een verbinding in de betreffende kolom/rij combinatie.
Hmmm, dat is het dus niet.


(de functionaliteit van die toetsen kan ik wel omzetten, maar dan mis ik weer een andere rij toetsen; dus tja...)

De allereerste versie werkte trouwens prima:
DIY Arduino gestuurde stappenmotor focussing (macro)rail.
met de nodige beperkingen, daarom een jaar later, een nieuwe en verbeterde versie.
jbhc schreef op woensdag 1 maart 2017 @ 18:58:
- Komt er wel 5 Volt uit de arduino? (Ik heb er hier een liggen waar 3,3V uit komt)
Er gaat 5V DC in, en er komt op de 3,3V PIN ook keurig 3,3V uit... maar die gebruik ik verder niet.
Waarom vraag je dat?
En die 5V wordt keurig geleverd door een 7805. Netjes ontkoppeld e.d.

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • jbhc
  • Registratie: Juli 2007
  • Laatst online: 10:19
Ik was gewoon nieuwsgierig of je het keypad ook werkend gehad hebt.

Ik had de ebay link nog niet bekeken. Ik dacht: misschien is de spanning wel niet hoog genoeg om het keypad goed te laten funktioneren.

Het keypad heeft overigens intern pull-up weerstanden.

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • SH4D3H
  • Registratie: Juni 2004
  • Laatst online: 27-02 23:46
Heb je 'm al eens geprobeerd zonder het scherm? Of iig alle SPI verwijzingen even 'commenten'. PB4/PIN 12 is namelijk de pin die wordt gebruikt voor MISO. Mogelijk zit daar een conflict. En dan de output van je keypad controleren via de SerialMonitor? :)

Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
@SH4D3H : Zonder scherm?
Maar dan zie ik niks... >:) m.a.w. dan kan ik ook niet zien of de toetsen van die betreffende kolom herkend worden...

Dit ontwerp gebruikt h/w SPI om het display aan te sturen, dan is toch alleen PIN 10 niet beschikbaar voor andere doeleinden?
Tenminste, dat is wat de originele maker van dit project zo uitlegt. Vandaar dat hij (= de originele s/w schrijver) PIN 12 gebruikt om één van de kolommen van het keypad uit te lezen.
Voor de rest (op PIN 10 na) zijn er geen poorten meer vrij.

En in de eerste versie DIY Arduino gestuurde stappenmotor focussing (macro)rail. wordt PIN12 ook gebruikt om een keymap kolom uit te lezen. En daar werkt het prima.

[ Voor 15% gewijzigd door ehtweak op 01-03-2017 22:02 ]

   Mooie Plaatjes   


Acties:
  • 0 Henk 'm!

  • ehtweak
  • Registratie: Juli 2002
  • Niet online

ehtweak

ICT opruimer

Topicstarter
Pffff, hehe, gevonden!

Dank @SH4D3H :)

De tip van PB4/PIN12 (MISO) i.c.m. de gebruikte SPI display aansturing zette me toch aan het denken.
Aangezien ik zelf niet zo in de software zit, moest ik eerst ff een spoedcursus Arduino sketch IDE en allerhande libraries zien te begrijpen. :Y
Zoeken, internet afstruinen wat overal mee bedoeld werd. De originele auteur nog wat mee gediscussieerd. Afijn, hardware fouten kon ik eigenlijk wel uitsluiten.
Vreemd is en blijft echter dat verschillende anderen over de wereld, dit project ook al hadden gebouwd en zij niet tegen dit probleem aanliepen. Zegt men.
Wellicht dat niet alle Arduino's (clone/origineel?) helemaal hetzelfde reageren, alhoewel me dat wel vreemd lijkt/leek. (?)

Ik was er wel over uit dat ik een andere PIN moest gebruiken om die betreffende kolom van het keypad te kunnen detecteren. Maar welke? Want alles is in gebruik in dit ontwerp.

Na dat ik alle includes en troubleshooting teksten van de oorspronkelijke auteur nogmaals had doorgelezen schoot me te binnen dat het ook mogelijk was om pin A0 vrij te maken van de batterij detectie functie. Die gebruik ik toch niet; ik gebruik een vaste PSU i.p.v. batterijvoeding.
Vervolgens in de code gedoken en de definitie van pin A0 t.b.v. batterijvoltage ge-comment en die PIN A0 fysiek aangesloten op het keypad, i.p.v. PIN 12.
Uiteraard de keypad parameters aangepast, code opnieuw op de Arduino geladen; en voila, alles werkt zoals het bedoeld is! oOo

Blijkbaar heeft het ook te maken met het feit of SPI h/w of s/w matig wordt gebruikt en vervolgens PIN 10 en 12 onbruikbaar worden.
Maar volgens de oorspronkelijke auteur zou dat geen probleem moeten zijn, volgens dit:
http://forum.arduino.cc/index.php?topic=74464.0
(daar kan ik geen uitspraak over doen, daarvoor heb ik te weinig Arduino kennis)
Feit is wel, dat het in mijn project problemen gaf en dat die nu verholpen zijn.

Jeetje zeg, dit is toch wel een enerverend DIY en foutzoek project. Frustrerend als het niet gelijk wil lukken, des te leuker als het uiteindelijk werkt. En.... je leert er heel veel van. 8)

Gelijk maar een eerste testrun gedraaid op de 'boosdoener', de Arduino CPU:
Afbeeldingslocatie: https://c1.staticflickr.com/1/573/32417382733_02b7f23737_c.jpg
ArduinoCPU-stacked by Erik Haak, on Flickr
Stacking (met PS CS6) is nog niet helemaal perfect, want er zit nog een blurry plek in deze plaat. Maar dit moest ff snel om te zien of het allemaal werkte.
Dit is een quick&dirty testrun met 150 images gestacked. En de onderlinge DOF afstand is nog lang niet geoptimaliseerd. Maar het geeft wel al aan wat je met een objectiefje van een paar tientjes (!) kunt bereiken.
Gebruikt objectief: Nikkor MF Ai-s 50mm f/1.8 omgekeerd gemonteerd.

Beschrijving van dit project: DIY Arduino gestuurde focusrail #2

   Mooie Plaatjes   

Pagina: 1