Ok met die BCD => Decimaal decoder is idd een goed idee ;) en veeeel goedkoper gewoon de MSB bit aan de massa hangen
heb je 000 = 0 uitgang hoog (of laag (actief laag) 001 = 1 010 = 2 011 = 3 etc... met wat gemultiplex kan je er meerdere aanzetten (vb led 1 en 2 001 en 010 snel achter elkaar). Je zal wel wat pull downs overal naar gnd moeten zetten als je -12V blokkeert dat je geen zwevende ingang krijgt

/edit wat is er nu leuk aan om met de com-poort ledjes aan te sturen ???:)

[Bericht gewijzigd door Aedolon op ]

Op 10 juli 2003 16:34:55 schreef Aedolon:
Ok met die BCD => Decimaal decoder is idd een goed idee ;) en veeeel goedkoper gewoon de MSB bit aan de massa hangen
heb je 000 = 0 uitgang hoog (of laag (actief laag) 001 = 1 010 = 2 011 = 3 etc... met wat gemultiplex kan je er meerdere aanzetten (vb led 1 en 2 001 en 010 snel achter elkaar). Je zal wel wat pull downs overal naar gnd moeten zetten als je -12V blokkeert dat je geen zwevende ingang krijgt

Aedolon, ja dat snel na mekaar is ook een goed idee !!!!!
zo heb je visueel het idee dat de LEDs continue brand.
Een kleinere LED weerstand en klaar.
Eventueel kan er nog een buffer ic'tje toegevoegd worden,
want al je multiplext moet de stroom weer kortstondig hoger om hetzelfde effect te krijgen, en ik weet niet
hoeveel de COM poort kortstondig kan afleveren.

Ik denk dat dit inderdaad wat mogelijkheden biedt,
eenvoudig en goedkoop.

[Bericht gewijzigd door elektron_ op ]

Het probleem is wel, dat je moet kunnen programmeren in een of andere taal :) en of de com poort wel snel van uitgangstoestand kan veranderen dat je geen geflikker krijgt

Op 10 juli 2003 16:44:20 schreef Aedolon:
Het probleem is wel, dat je moet kunnen programmeren in een of andere taal :) en of de com poort wel snel van uitgangstoestand kan veranderen dat je geen geflikker krijgt

Dat kan Randy zegt hij.
Eventueel een condensator bij zetten indien toch flikkering.

cap moet ongeveer (0.02*0.001)/0.5 = 40µF voor halve volt rimpel op 1khz

Op 10 juli 2003 16:44:20 schreef Aedolon:
Het probleem is wel, dat je moet kunnen programmeren in een of andere taal :) en of de com poort wel snel van uitgangstoestand kan veranderen dat je geen geflikker krijgt

Ik kan wel programmeren in qbasic om de com poort aan te sturen.
Maar misschien lijk ik dom ofzo maar ik snap er ff nix meer van.. Van de schakeling..

Groeten Randy

hm kijk naar die eerste link van elektron en je krijgt er 0 en 5V uit, dan hang je er gewoon een chippie aan met pull down

[Bericht gewijzigd door Aedolon op ]

Op 10 juli 2003 17:21:17 schreef Aedolon:
hm kijk naar die eerste link van elektron en je krijgt er 0 en 5V uit, dan hang je er gewoon een chippie aan met pull down

Hang er eerste een volt meter op aub !

vb tussen Grnd en DTR

ohja ik zie het al en als het goed is kun je daar toch 2 LEDjes mee aansturen?

Groeten Randy

Op 10 juli 2003 17:36:34 schreef Randy:
ohja ik zie het al en als het goed is kun je daar toch 2 LEDjes mee aansturen?
Groeten Randy

Wil je er direkt een LEDJE aansturen, zet je er 2 op één uitgang, er maar dan de 2de omgedraaid.
Als je de uitgang anders stuurt gaat de ander LED branden.
Een uitgang kent 3 toestanden, niks 1 of 0.
of 0 volt, -12 volt en + 12 Volt. Bij de meeste pc's is het minder.
Dus op deze manier 6 Ledjes, Tx, Dtr, Rts.
De 7805 en de condensator en de diodes kan je weglaten voor een LED.

das juist maar hij wou er toch 8 ? (0...7dec van decoder) dan heb je al dat spul wel nodig,

Op 10 juli 2003 18:05:44 schreef Aedolon:
das juist maar hij wou er toch 8 ? (0...7dec van decoder) dan heb je al dat spul wel nodig,

Als hij ook de toestand GEEN led aan wil , heeft hij er maar 6 !
Maar er kan als het moet nog op het negatief signaal ingespeeld worden. Want er zijn zelfs 3 macht 3 (mogelijkheden !!

 
          0 0 0
          0 0 -
          0 0 +
          0 - 0
          0 - -
          0 - +
                

etc.

0000 = geen led
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
7 leds dus, geen 6
/edit ff MSB toegevoegd ;)

[Bericht gewijzigd door Aedolon op ]

Op 10 juli 2003 19:38:44 schreef Aedolon:
7 LEDS en geen 6

Aedolon heeft gelijk ! ( ik ben gezakt voor wiskunde.:'()

|:( |:( |:( |:( |:( |:( |:( |:(

[Bericht gewijzigd door elektron_ op ]

Op 10 juli 2003 18:05:44 schreef Aedolon:
das juist maar hij wou er toch 8 ? (0...7dec van decoder) dan heb je al dat spul wel nodig,

Ik wou eigenlijk zoveel mogenlijk (8 dus..) maar eigenlijk wou ik het ook simpel houden, dus maakt het eigenlijk niet zoveel uit als het er 6 zijn..

Dus electron als ik het goed begrijp, kan ik met
Pin 3 (Tx)
Pin 4 (Dtr)
Pin 7 (Rts)
ff opgezocht;)

En dan op elke pin 2 ledjes met 1 ledje met omgekeerde polariteit. Dus idd dus 6 ledjes.

En ik denk dat het ook nog ff handig is als ik ff de spanning meet van elke pin zodat ik eventueel nog een weerstand in serie moet schakelen met de 2 ledjes per pin anders brand me de led kapot als de spanning te hoog is:P

Groeten Randy

De stroom is wel beperkt ! Dus extra zuinige LEDS is nog beter.

Oke

Maar hoe moet je die 7e led aansluiten???

Groeten Randy

We hebben hier 2 mogelijkheden besproken:

- ofwel rechtstreeks met 6 Leds, dan staan ze per paar.
één LED werkt op - uitgang andere op + als uitgang.

- Ofwel met decoder, dan heb je een omzetter van 3 naar 7.
zie: http://www.semiconductors.philips.com/acrobat/datasheets/74HC_HCT42_CN…, maar neem een 7442 die kan 16 mA sturen.
het voordeel van een decoder is dat ze meer stroom kunnen
leveren dan de rechtstreeks uitgang.

In beide gevallen kan je de LEDS zo snel laten knipperen
dat je denkt dat ze continue branden, want vooral in het laatste geval kan er eigen lijk maar één LED gelijktijdig branden.

- Er is nog een mogelijkheid.
Je stuurt met één uitgang clock pulsen naar een teller.
met de andere uitgang zet je de getelde waarde vast
( latch), deze laatste is waarschijnlijk makkelijker te programmeren, extra voordeel, geen flikkerdende LED want de latch houdt het vast. Met deze laatste mogelijk weer enkele LEDS meer. ( moet nu ff weg)

[Bericht gewijzigd door elektron_ op ]

Op 10 juli 2003 20:46:16 schreef elektron_:
- ofwel rechtstreeks met 6 Leds, dan staan ze per paar.
één LED werkt op - uitgang andere op + als uitgang.

Ik denk dat ik deze mogenlijkheid uns uitprobeer..
Maar ik heb nog een vraag, hoe moet ik die aansturen met qbasic?

De poort adres van de serieele poort is 3F8h van COM 1
en van COM 2: 2F8h
ff opgezocht

OUT &H3F8, ?
OUT &H2F8, ?

dus mijn vraag is eigenlijk wat op het ? moet staan.

Groeten Randy

Randy,

Hier is een schema voor 16 of 32 uitgangen op de serieele poort.

Is zo te zien vrij eenvoudig te maken.

http://ourworld.compuserve.com/homepages/Bill_Bowden/page3.htm

Voor het aan sturen van de seriele poort in QB kan je zover ik mij nog kan herinneren. Het open commando gebruiken.

OPEN COM1: 9600,8,n,1 for OUTPUT as #1

en dan er iets naar toe sturen met

Print #1,.........

Maar volgens mij hoef je geen "OUT" commando te gebruiken.

maar kijk daar voor in je help functie van QB of kijk hier even www.programmersheaven.com

groetjes Antonie

Zo kan het ook nog maar aansturen lijkt me dan ietsje moeilijker :)

Bedankt Antonie Vonk!
Ik zal um uns een keer bouwen over 3 weken als ik onderdelen ga halen...

Op 11 juli 2003 12:38:52 schreef Aedolon:
Zo kan het ook nog maar aansturen lijkt me dan ietsje moeilijker :)

Hoe je um aan moet sturen stond volgens mij ook op die pagina (Onderaan)..

Groeten Randy

Leuk topic!!

Het nadeel van basic gebruiken om te outputten, is dat het niet werkt in win2k/xp
Daarom hier de officiele windows methode in c:


/* A sample program to illustrate setting up a serial port and writing one byte */

#include <windows.h>

int
main(int argc, char *argv[])
{
  DCB dcb;
  HANDLE hCom;
  BOOL fSuccess;
  char *pcCommPort = "COM1";
  char *buffer = "1234567890";
  unsigned int i;
  unsigned char karakter;
  COMMTIMEOUTS commtimeouts;
  COMSTAT comstat;

  DWORD byteswritten;

  hCom = CreateFile( pcCommPort,
                     GENERIC_READ | GENERIC_WRITE,
                     0,    // comm devices must be opened w/exclusive-access
                     NULL, // no security attributes
                     OPEN_EXISTING, // comm devices must use OPEN_EXISTING
                     0,    // not overlapped I/O
                     NULL  // hTemplate must be NULL for comm devices
                     );

  if (hCom == INVALID_HANDLE_VALUE) {
      // Handle the error.
      printf ("CreateFile failed with error %d.\n", GetLastError());
      return (1);
    }

  fSuccess =  SetupComm( hCom,     // handle to communications device
                         2100,  // size of input buffer
                         10  // size of output buffer
                         );
  if (!fSuccess) {
      printf ("Setupcomm failed with error %d.\n", GetLastError());
      return (2);
  }

  fSuccess = GetCommState(hCom, &dcb);

  if (!fSuccess) {
      // Handle the error.
      printf ("GetCommState failed with error %d.\n", GetLastError());
      return (3);
    }

  // Fill in the DCB: baud=57,600 bps, 8 data bits, no parity, and 1 stop bit.

  dcb.BaudRate = CBR_57600;                    // set the baud rate
  dcb.ByteSize = 8;                            // data size, xmit, and rcv
  dcb.Parity = NOPARITY;                       // no parity bit
  dcb.StopBits = ONESTOPBIT;                   // one stop bit
  dcb.fOutxCtsFlow = FALSE;                    // no CTS output flow control
  dcb.fOutxDsrFlow = FALSE;                    // no DSR output flow control
  dcb.fDtrControl = DTR_CONTROL_ENABLE;        // DTR always high = +12 v.
  dcb.fDsrSensitivity = FALSE;                 // pay no attention to DSR
  dcb.fTXContinueOnXoff = TRUE;                // XOFF continues Tx
  dcb.fOutX = FALSE;                           // XON/XOFF out flow control
  dcb.fInX = FALSE;                            // XON/XOFF in flow control
  dcb.fNull = FALSE;                           // enable null stripping
  dcb.fRtsControl = RTS_CONTROL_DISABLE;       // RTS always low = -12 v.


  fSuccess = SetCommState(hCom, &dcb);

  if (!fSuccess) {
      printf ("SetCommState failed with error %d.\n", GetLastError());
      return (4);
    }

  printf ("Serial port %s successfully reconfigured.\n", pcCommPort);

  printf ("Now trying to write a byte...\n");
  fSuccess = WriteFile( hCom,
                        buffer,
                        1,      // write one byte
                        &byteswritten,
                        NULL    // no overlapping
                        );
  if (!fSuccess) {
     printf ("WriteFile failed with error %d\n");
  }

  CloseHandle(hCom);
  return (0);
}

Het is vreselijk lang, ik heb het even snel uit een programma van mij gehaald.

Ik adviseer een max232 achter de seriele poort, en daarachter een microcontroller, liefst met uart aan boord. Daar kan je eventueel weer een reeksje 74164's achter hangen, evt met latches, om een veelvoud van 8 uitgangen te krijgen.
Lezen kan ook, als je wil, post ik nog wel wat code :)

Wat is windoos toch raar maar ik snap ze wel die msers maar moet het daarom zo lang zijn???????? geen libary ? :P

haha vraag mij nix van c want daar snap ik de balluh van

Gr-Randy