Microcontroller (Arduino?) voor ATX aan / uit

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
Ik heb een DTS decoder gebruikt voor 35mm film print. Deze heeft een " harde aan/uit schakelaar ". In deze unit zit echter een ATX voeding en moederbord (draait op linux). Een 8 bit microcontroller zorgt voor het aan/uitschakelen.

Nu heb ik een 2e unit, deze heeft nog een oude revisie (pentium 3) waar de aan/uit simpel bestaat uit het doorverbinden van 2 pinnen op de voeding. Deze heeft vaak schrijffouten omdat het afsluiten niet netjes verloopt.

Heeft iemand een idee hoe ik een simpele microcontroller kan gebruiken hiervoor? De huidige haalt spanning van de 5volt standby. Bij I zorgt deze er altijd voor dat de pc aangaat (dus ook na power off) op stand O zorgt deze er ook voor dat deze uit blijft (bij het verwijderen van de stekker gaat deze even aan en op stand O gaat deze dus netjes uit)

Ik ben al zover dat ik deze kan voeden van de 5v standby (die altijd stroom heeft). Ik moet dus dan wat code hebben/stelen :) die de harde I vertaald naar de acties om een puls te geven voor power on en O voor power off.

Alle reacties


Acties:
  • 0 Henk 'm!

  • tsjoender
  • Registratie: April 2005
  • Laatst online: 08:04
Ik snap in jouw beschrijving niet wat de I en de O is. Is dit een stand van een fysieke schakelaar over de twee pinnen? Je zou dan met een relais die pinnen kunnen sluiten. Dan zou je zoiets kunnen doen:

https://www.hackerstore.nl/BlogArtikel/17

Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
Klopt, dat is de power button. 2 standen i.p.v. push

Acties:
  • 0 Henk 'm!

  • br00ky
  • Registratie: Januari 2014
  • Nu online

br00ky

Moderator Harde Waren
Schopje naar MME.

Acties:
  • 0 Henk 'm!

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
Je kan iedere pin op een Arduino in of uitschakelen met een timer of een delay. Hang daar een optocoupler aan en je kan remote schakelen (dus daarmee een pc aanzetten).

Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
Sorry, ik denk dat ik de vraag verkeerd heb gesteld. Voor het schakelen van een ATX moederbord gebruik je een puls. Ik wil echter de schakeling bedienen met een aan/uit schakelaar. In 1 van mijn 2 units zit een 8 bit microcontroller die dit "regelt'. Op stand I zorgt deze er dus voor dat de machine opstart (bijvoorbeeld ook nadat ik de stekker eruit heb gehaald) en op stand O zorgt deze netjes voor een power off. Als ik de switch dus omzet, geeft deze netjes een puls op PWR_ON/OFF zodat de machine afsluit.

Het is idd een optie om gewoon de PWR_ON op de stekker te forceren, maar dit geeft steeds schrijffouten op de HDD.

Ik hoopte dus dat een arduino de rol kan overnemen van mijn microcontroller en de fysieke positie kan vertalen richting een pulsje.

Acties:
  • +1 Henk 'm!

  • Valen_76
  • Registratie: Oktober 2009
  • Laatst online: 19-04 19:28
Je bent nog steeds niet duidelijk. Wil je die 8 bit microcontroller (wat equivalent is aan een Arduino) van de 1e unit vervangen. Of de mechanische schakelaar oplossing van de P3 unit die slecht afsluit.

Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
Valen_76 schreef op dinsdag 15 mei 2018 @ 14:06:
Je bent nog steeds niet duidelijk. Wil je die 8 bit microcontroller (wat equivalent is aan een Arduino) van de 1e unit vervangen. Of de mechanische schakelaar oplossing van de P3 unit die slecht afsluit.
Ik wil graag in de P3 unit een soortgelijke schakeling. Oftewel een kopietje :) (sorry voor de onduidelijkheid)

PS Ik kan uiteraard een leuke filmvertoning aanbieden aan de helpende oplossing ;)

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
Dus je wilt van een on of switch, naar een pulse ?
Of zoek je iets om die p3 netjes af te sluiten ?

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
itcouldbeanyone schreef op dinsdag 15 mei 2018 @ 17:51:
Dus je wilt van een on of switch, naar een pulse ?
Of zoek je iets om die p3 netjes af te sluiten ?
De controller doet iets meer als een puls geven. Als de stroom eraf is geweest en de schakelaar staat in de aan stand, dan geeft deze ook netjes een power on.

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
jantje112 schreef op dinsdag 15 mei 2018 @ 19:06:
[...]


De controller doet iets meer als een puls geven. Als de stroom eraf is geweest en de schakelaar staat in de aan stand, dan geeft deze ook netjes een power on.
iets als dit mischien,
je meet dus waneer je systeem aan staat, en vergelijkt dit met je schakelaar (on off positie)
indien nodig vertuur je dan een pulse, zodat het systeem aan gaat of uit gaat.

Arduino:
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
int powerOn=8;// deze pin moet hoog zijn waneer de pc aan staat, doormiddel van een voltage divider op je 12V brug, of je usb voltage(mits die uit gaan)
int powerButton=9;// pin waar de schakelaar op zit
int pulseOutPin=10;// uitgaande pin, deze sluit je aan op het moederbord

boolean powerButton_STATE =false; 
boolean lstPowerButton_STATE =false; 
boolean SystemIsOn=false;
boolean PulseButton_state=false;

void Setup(){
pinMode(powerOn, INPUT);
pinMode(powerButton, INPUT);
pinMode(pulseOutPin, INPUT);
}
void loop(){

SystemIsOn=digitalRead(powerOn)==HIGH; // boolean wordt true wanneer het systeem aan staat
powerButton_STATE=digitalRead(powerButton)==HIGH; // boolean word true wanneer de schakelaar hoog staat

if(!SystemIsOn&&powerButton_STATE&&!PulseButton_state){// wanneer er geen power is, maar de knop staat aan, stuur eenmalig een pulse
ToggleMainboardPowerPin();// vertuur de puls
PulseButton_state=true;// zorgt ervoor dat de puls maar eenmalig vertuurd wordt
}
if(SystemIsOn&&!powerButton_STATE&&PulseButton_state){// wanneer er power is, en de knop staat uit , stuur eenmalig een puls
ToggleMainboardPowerPin();// vertuur de puls
PulseButton_state=false;// zorgt ervoor dat de puls maar eenmalig vertuurd wordt
}
delay(20); // extra voor stabiliteit meetwaardes I/O
}
void ToggleMainboardPowerPin(){
digitalWrite(pulseOutPin, HIGH);
delay(100);// pulse grootte
digitalWrite(pulseOutPin, LOW);
}

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
itcouldbeanyone schreef op dinsdag 15 mei 2018 @ 20:21:
[...]


iets als dit mischien,
je meet dus waneer je systeem aan staat, en vergelijkt dit met je schakelaar (on off positie)
indien nodig vertuur je dan een pulse, zodat het systeem aan gaat of uit gaat.

Arduino:
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
int powerOn=8;// deze pin moet hoog zijn waneer de pc aan staat, doormiddel van een voltage divider op je 12V brug, of je usb voltage(mits die uit gaan)
int powerButton=9;// pin waar de schakelaar op zit
int pulseOutPin=10;// uitgaande pin, deze sluit je aan op het moederbord

boolean powerButton_STATE =false; 
boolean lstPowerButton_STATE =false; 
boolean SystemIsOn=false;
boolean PulseButton_state=false;

void Setup(){
pinMode(powerOn, INPUT);
pinMode(powerButton, INPUT);
pinMode(pulseOutPin, INPUT);
}
void loop(){

SystemIsOn=digitalRead(powerOn)==HIGH; // boolean wordt true wanneer het systeem aan staat
powerButton_STATE=digitalRead(powerButton)==HIGH; // boolean word true wanneer de schakelaar hoog staat

if(!SystemIsOn&&powerButton_STATE&&!PulseButton_state){// wanneer er geen power is, maar de knop staat aan, stuur eenmalig een pulse
ToggleMainboardPowerPin();// vertuur de puls
PulseButton_state=true;// zorgt ervoor dat de puls maar eenmalig vertuurd wordt
}
if(SystemIsOn&&!powerButton_STATE&&PulseButton_state){// wanneer er power is, en de knop staat uit , stuur eenmalig een puls
ToggleMainboardPowerPin();// vertuur de puls
PulseButton_state=false;// zorgt ervoor dat de puls maar eenmalig vertuurd wordt
}
delay(20); // extra voor stabiliteit meetwaardes I/O
}
void ToggleMainboardPowerPin(){
digitalWrite(pulseOutPin, HIGH);
delay(100);// pulse grootte
digitalWrite(pulseOutPin, LOW);
}
Dit ziet er wel bruikbaar uit idd, heb je dat ergens vandaag geleend of schud je dit zo uit je mouw?

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
jantje112 schreef op dinsdag 15 mei 2018 @ 20:58:
[...]


Dit ziet er wel bruikbaar uit idd, heb je dat ergens vandaag geleend of schud je dit zo uit je mouw?
This zomer, dus heb nu geen mouwen, maar wel een grote duim.
heb de code verder niet getest, maar het lijkt me , dat het zal werken.

laat maar weten of het werkt ;)

[ Voor 4% gewijzigd door itcouldbeanyone op 15-05-2018 21:04 ]

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
itcouldbeanyone schreef op dinsdag 15 mei 2018 @ 21:03:
[...]


This zomer, dus heb nu geen mouwen, maar wel een grote duim.
heb de code verder niet getest, maar het lijkt me , dat het zal werken.

laat maar weten of het werkt ;)
Super, ik moet even een nieuwe arduino bestellen. Dus zal allicht nog een paar dagjes duren. Ik zal je updaten zsm, thanks!

Acties:
  • 0 Henk 'm!

  • tafkaw
  • Registratie: December 2002
  • Laatst online: 11-09 15:45
Als het een linux systeem is zou je dan niet netter een netjes shutdown signaal vanuit je arduino kunnen doen zoals een apc UPS dat ook kan? Je zou zelfs een screen sessie open kunnen zetten en de toetsen emuleren met een teensy. Heb je je schrijfprobleem ook opgelost.

Acties:
  • 0 Henk 'm!

  • jantje112
  • Registratie: Maart 2002
  • Laatst online: 11:11
Het is inderdaad een linuxsysteem. Volgens mij is een puls op de power button voldoende om een nette shutdown te activeren. Anders is je oplossing wel het overwegen waard. Ik ga eerst bovenstaande even proberen
Pagina: 1