Ik had een vraag over de mogelijkheden van een AVR microcontroller. En dan bijvoorbeeld de AT90S2313 uit de Elektuur van deze maand.

Is het mogelijk om:
vanaf de PC een getal naar de microcontroller te sturen. Deze vergelijkt dan het nieuwe nummer met een eerder gestuurd nummer, aan de hand daarvan laat hij een motortje naar boven of naar beneden draaien, totdat 4 naast elkaar geplaatste schakelaartjes het binaire patroon van het door de computer verstuurde getal vormen, en dat de motor dan stopt? (het motortje en de schakelaartjes zitten aan elkaar, en bewegen los van het printplaatje met de elektronica)

Bijvoorbeeld:
Het vorige nummer dat naar de microcontroller was verstuurd was een 4 (ook de plek waar hij de vorige keer was gestopt).


Situatie:

                   |       <- 1
                |          <- 2
                |  |       <- 3
:::::::+-------------+
:motor:+ s4 s3 s2 s1 +     <- 4
:::::::+-------------+       
             |     |       <- 5
             |  |          <- 6
             |  |  |       <- 7
          |                <- 8
          |        |       <- 9
          |     |          <- 10

De PC stuurt een nieuw nummer, bijvoorbeeld 9, naar de MC, de MC vergelijkt het nieuwe nummer (9) en het oude (4) met elkaar. Het oude nummer is kleiner dan het nieuwe nummer, dus het motortje moet naar beneden draaien net zolang totdat de schakelaartjes aan, uit, uit, aan staan:


Situatie:

                   |       <- 1
                |          <- 2
                |  |       <- 3
             |             <- 4
             |     |       <- 5
             |  |          <- 6
             |  |  |       <- 7
          |                <- 8
:::::::+-------------+
:motor:+ s4 s3 s2 s1 +     <- 9
:::::::+-------------+ 
          |     |          <- 10

En zijn er dan ook nog genoeg I/O pinnen over voor een LCD schermpje?

Ik hoop dat de bedoeling een beetje duidelijk is, anders hoor ik het wel.

Ja, natuurlijk is dat mogelijk. En misschien is die AVR die jij aangeeft zelfs wel overkill daarvoor (maar dat weet ik niet precies, ik ben meer een PICmicro man).

ik ben meer een PICmicro man

me 2 al kan ik er nog niet veel mee :p

Maar hoe sluit ik de computer aan op de mc, zodat ik een getal er naartoe kan sturen en dat de mc dan z'n werk kan doen?

Op 21 maart 2003 10:47:00 schreef L.Mo:
Maar hoe sluit ik de computer aan op de mc, zodat ik een getal er naartoe kan sturen en dat de mc dan z'n werk kan doen?

Welke poort wil je gebruiken? Ik neem aan serieel, dan gebruik je een MAX232 (of, als je alleen wilt ontvangen is een enkele transistor ook prima, als je avontuurlijk bent zelfs een enkele weerstand).

Maar dat is niet je probleem, je moet een programma schrijven voor op de AVR. Dat programma en de serieele 'interface hardware' moeten trouwens ook bij elkaar passen.

Via een MAX232 schakeling sluit je de signalen aan op de µC zijn RxD en TxD pinnen. Je moet dan het hoofstuk over de UART lezen in de datasheet.
Voor een LCD display heb je minimaal 6 uitgangen nodig.

Je bent dus je PD0 en PD1 kwijt voor de RS232 en nog 6 uitgangen voor het LCD, aangezien je totaal 15 lijnen hebt houd je er dan 7 over voor je motor aansturing.

En je moet dan natuurlijk nog zelf een programma voor op je pc schrijven. Hieronder zie je iig het schema van de max232:
http://home.planet.nl/~steenb/rs232.jpg

[Bericht gewijzigd door Bastiaan op ]

Op 21 maart 2003 11:39:13 schreef Wouter van Ooijen:

[...]

Welke poort wil je gebruiken? Ik neem aan serieel, dan gebruik je een MAX232 (of, als je alleen wilt ontvangen is een enkele transistor ook prima, als je avontuurlijk bent zelfs een enkele weerstand).

Maar dat is niet je probleem, je moet een programma schrijven voor op de AVR. Dat programma en de serieele 'interface hardware' moeten trouwens ook bij elkaar passen.

Ik kies voor de MAX232 want dat kan ik 'm ook nog gebruiken voor bv nummers voor de huidige locatie van het motortje etc door te geven naar het computerprogramma.

Op 21 maart 2003 11:52:10 schreef Bastiaan:
Via een MAX232 schakeling sluit je de signalen aan op de µC zijn RxD en TxD pinnen. Je moet dan het hoofstuk over de UART lezen in de datasheet.
Voor een LCD display heb je minimaal 6 uitgangen nodig.

Je bent dus je PD0 en PD1 kwijt voor de RS232 en nog 6 uitgangen voor het LCD, aangezien je totaal 15 lijnen hebt houd je er dan 7 over voor je motor aansturing.

En je moet dan natuurlijk nog zelf een programma voor op je pc schrijven. Hieronder zie je iig het schema van de max232:
[afbeelding]

Bedankt!!
Nu kan ik tenminste even verder met het ontwerpen van wat ik wil maken. Ik ben namelijk van plan om een custom case te maken met daarin ook een cd/dvd wisselaar. Aan het motortje met de schakelaartjes komt ook een dvd speler (zo eentje waarbij je de dvd's er zo in kan schuiven, zonder klepje dus). Via een computerprogramma wat ik nog moet maken geef je door dat je bv disc 4 wilt hebben, gooit hij de oude disc eruit en gaat naar disc 4. Nou ja, het verhaalt is eigenlijk al bekend (zie 1st post)

ik neem aan dat ik voor het computer programma het artikel 'seriele poort driver voor windows' uit de laatste elektuur goed kan gebruiken?

Op 21 maart 2003 12:25:03 schreef L.Mo:
[...]
ik neem aan dat ik voor het computer programma het artikel 'seriele poort driver voor windows' uit de laatste elektuur goed kan gebruiken?

Klopt, dat kan handig zijn. Ligt er wel een beetje aan in welke taal je het proggie gaat schrijven en op welk OS je het laat draaien.

Ik ga het laten draaien op XP waarschijnlijk. (extra dll nodig)
Ik heb wel wat ervaring met programmeren(basic, java(script), OPL, ASM), maar nog niet voor Delphi of Visual C++
Welke taal is het meest geschikt om te berijken wat ik wil? Delphi of Visual C++?

Op 21 maart 2003 12:55:21 schreef L.Mo:
Welke taal is het meest geschikt om te berijken wat ik wil? Delphi of Visual C++?

De taal waar jij het meest in thuis bent, bij geen ervaring de taal waarvoor jij iemand kan vinden die je kan assisteren.