Springen naar inhoud


- - - - -

Aansturen Van Stappenmotoren

Stappenmotor

  • Log in a.u.b. om te beantwoorden
Er zijn 5 reacties in dit onderwerp

#1 g-over

g-over

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 05 okt 2012 16:06

Geplaatst op 05 oktober 2012 - 13:35

Hallo ,

Zou iemand mij een goeie tutorial geven om stappenmotoren te leren programmeren in C ?
Ik zit nou eenmaal in 6de jaar elektronica en ik moet als GIP een cnc coatingmachine maken en zou dit alles in C willen programmeren.

Brian

#2 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 14 jul 2018 15:51
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 05 oktober 2012 - 13:44

Dag Brian,

Is C een vereiste ?

Greetzzz
RedThread

http://www.vbib.be/i...n-motor-module/

#3 g-over

g-over

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 05 okt 2012 16:06

Geplaatst op 05 oktober 2012 - 14:10

Het zou veel makkelijker zijn omdat ik al een goeie basis heb in C .
Dus zou ik minder tijd in het leren van programmeren zetten en meer in het bouwen van mijn cnc.

Maar als je een andere oplossing hebt is het altijd welkom.

Vriendelijk,
Brian

#4 Vozzie

Vozzie

    Moderator

  • Leden
  • PipPipPipPipPipPipPip
  • 1855 berichten
    Laatst bezocht 12 jul 2017 13:15
Inzender

Geplaatst op 05 oktober 2012 - 16:07

Hy,

Hier heb je een paar C tutorials,

http://logix4u.net/

Dit artikel werkt met de parallele poort,...

http://www.codeproje...h-Parallel-Port

En gebruikt een DLL van uit dit artikel,(dll link ontbreekt maar dll zit in de download van vorige artikel)

http://www.codeproje...LEDs-Light-Emit

Als je deze dll wilt gebruiken in C zal je die best dynamisch laden (LoadLibrary, GetProcAddress) want de headers en library ontbreken,...

(De vbib code werkt ook met die dll uit deze artikels,...)

Groetjes

Als je Win32 C bedoelt, hier is code voor die dll dynamisch te laden.

Code:
// C Demo
#include <Windows.h>
#include <tchar.h>
#include <stdio.h>

typedef void (__stdcall * FNOutput)(short, short);
typedef short (__stdcall * FNInput)(short);



int _tmain(int argc, _TCHAR* argv[])
{
	HMODULE hModule;
	FNOutput fnOutput;
	FNInput fnInput;
	if(NULL == (hModule = LoadLibrary(L"inpout32.dll")))
	{
		_tprintf(TEXT("Error: %s"), TEXT("Could not load library"));
		return 0;
	}

	if(NULL != (fnOutput = (FNOutput)GetProcAddress(hModule, "Out32"))
	&& NULL != (fnInput  = (FNInput) GetProcAddress(hModule, "Inp32")))
	{
		// todo: io...
		//fnOutput(123, 456);
		//short input = fnInput(123);
	}
	else
	{
		_tprintf(TEXT("Error: %s"), TEXT("Could not load functions"));
	}

	if(hModule) FreeLibrary(hModule);
	getchar();
	return 0;
}

Als je Win32 C++ bedoelt, hier is code voor die dll dynamisch te laden.

Code:
// C++ Demo
#include <Windows.h>
#include <tchar.h>
#include <stdio.h>

typedef void (__stdcall * FNOutput)(short, short);
typedef short (__stdcall * FNInput)(short);

class PIO {
private:
	HMODULE hModule;
	FNOutput fnOutput;
	FNInput fnInput;
public:
	PIO();
	~PIO();
	void Output(short, short);
	short Input(short);
};

PIO::PIO() 
{
	this->hModule = LoadLibrary(L"inpout32.dll");
	if(this->hModule)
	{
		if(NULL == (this->fnOutput = (FNOutput)GetProcAddress(this->hModule, "Out32"))
		|| NULL == (this->fnInput  = (FNInput)GetProcAddress(this->hModule, "Inp32")))
		{
			FreeLibrary(this->hModule);
			this->hModule = NULL;
			throw (LPCTSTR)TEXT("Could not load functions");
		}
	}
	else
	{
		throw (LPCTSTR)TEXT("Could not load library");
	}
}

PIO::~PIO()
{
	if(this->hModule) FreeLibrary(this->hModule);
}

void PIO::Output(short address, short value)
{
	if(this->fnOutput) this->fnOutput(address, value);
}

short PIO::Input(short address)
{
	if(this->fnInput)
		return this->fnInput(address);
	else
		return -1;
}

int _tmain(int argc, _TCHAR* argv[])
{
	try
	{
		PIO * pio = new PIO();

		// todo: call output
		//pio->Output(123,456);
		//short input = pio->Input(123);

		delete pio;
	}
	catch(LPCTSTR sEx)
	{
		_tprintf(TEXT("Error: %s"), sEx);
	}
	getchar();
	return 0;
}

Ben het niet zeker maar denk dat die dll van bij dit boek komt oorspronkelijk

http://www.amazon.co...1915/logix4u-20


Note: Note: Ik heb gemerkt dat bepaalde tutorials die DLL aanspreken met "int" waardes en andere met "short". De juiste signatuur van de inp32 en out32 functies is dus onduidelijk...

Update 5/10/2012 17:02

#5 Vozzie

Vozzie

    Moderator

  • Leden
  • PipPipPipPipPipPipPip
  • 1855 berichten
    Laatst bezocht 12 jul 2017 13:15
Inzender

Geplaatst op 05 oktober 2012 - 17:15

btw, welkom op vbib,...

#6 Yannou

Yannou

    VBIB Godfather

  • Leden
  • PipPipPipPipPipPipPipPip
  • 2465 berichten
    Laatst bezocht 07 mei 2017 13:46
  • Locatiehttp://www.fablab-brussels.be

Geplaatst op 06 november 2013 - 18:43

Als je stappenmotors wil aansturen in C, maak dan gebruik van de Stepper library van Arduino. Hiermee kan je gewoon Direction (richting), Enable (aan of uit) en Step (één stap verdraaien) instellen. Zelf de sequentie van de spoelen programmeren kan ook, maar dit vergt iets meer werk en inzicht in de werking van de stappenmotor. Bovendien zijn er verschillende types stappenmotoren (unidirectioneel en bidirectioneel, met 2, 4, 6, 8 spoelen enz.).





Ook met taq Stappenmotor voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)