Drehzahlsteuerung Singer Nähmaschine K29 class29 LPC1769

Gast #3313036
Lesenswert?

Anbei eine Motorsteuerung für eine Sattlernähmaschine. Bei der Singer 
class29 handelt es sich um ein älteres Modell -meine stammt von 1895- 
das aber heute noch gebräuchlich ist. Ich wollte damit die Haut eines 
Faltboots nähen.

Das Programm ist so ausgelegt, dass es über einen taster die Stichzahl 
der Nähmaschine erfasst und daraus mittels PWM über ein Solid State 
Relais (SSR) einen 70 Watt Universalmotor auf niedrige Stichzahl 
einregelt. Bei ersten Nähversuchen mit unterschiedlichen Stoffen 
funktioniert es erstaunlich gut.

Das SSR ist für Motorsteuerung nur bedingt geeignet, da es Wechselstrom 
nur in der Nullphase schaltet. Es kommt bei PWM deswegen zu einem An- 
und Abschwellen des Motorlaufs. Nach vielem Probieren habe ich bei ca 
1khz eine ausreichend stabile PWM-frequenz gefunden.

Das Programm hat einen Stitch10-Modus: Bei Betätigen des 
Interrupttasters am Kopf der Maschine werden genau 10-Stiche genäht- 
erleichter die Arbeit speziell für den ungeübten Anfäger. Per touchpad 
kann auf Dauerbetrieb umgestellt werden. Im Dauerbetrieb wird die 
Maschine über den Taster gestartet und angehalten.

Das verwendete Cortex M3 LPCexpresso 1769 board ist mit 120MHZ für das 
programmtechnisch schlichte Projekt sicher deutlich überdimensioniert. 
Interrupt und PWM sind damit aber relativ einfach zu bewältigen. 
Außerdem ist das GLCD mit Touchpad beim ausprobieren hilfreich. Das 
Programm enthält aus früheren Programmierungen noch code zur Ansteuerung 
einer sd-karte und ähnliches. Dies mag für den einen oder anderen 
LPC-Nutzer nützlich sein.
Angehängte Dateien:
Gast #3314739
Lesenswert?

> anbei noch ein Foto mit Details zur Befestigung des Tasters

Die 120 Jahre alte Nähmaschine ist aber eine wesentlich bessere
Ingenieursleistung als die elektrische Verdrahtung und mechanische
Anbringung der spannungsführenden Teile.

Allerdings: Wie macht die Nähmaschine das mit dem Unterfaden ?
Gast #3314906
Lesenswert?

hallo MaWin, das mit dem Unterfaden geht im Prinzip wie bei neuen 
Maschinen auch. Das besondere an der class29 ist, dass man den Nähkopf 
in jede Richtung drehen kann. Vorwärts, rückwärts, rechts, links nähen 
...

Bei der Installation habe ich mich bemüht, alle 1895 geltenden 
Sicherheitsvorschriften einzuhalten. Es gilt hier Bestandsschutz.

Der Hinweis mit dem Triac ist ohne Zweifel richtig. Aber das wäre das 
nächste Projekt. SSR ist die einfachste gerade noch funktionierende 
Lösung.
Angehängte Dateien:
#3314965
Lesenswert?

leluno schrieb:
> Bei der Installation habe ich mich bemüht, alle 1895 geltenden
> Sicherheitsvorschriften einzuhalten.

Du meinst, damals mußte man 230V nicht isolieren?

Das SSR einfach so offen rumliegen zu lassen, wäre mir zu gefährlich.
Ich würde alles in ein Gehäuse bauen mit Kabeln zu Motor und Taster.

Klebeband oder Heißkleber nehme ich nur innen, wo man es nicht sieht.
Gast #3320785
Lesenswert?

Der Motor von dem Ding ist doch bestimmt so ein Teil mit B"ursten, der 
sowohl Wechselstrom als auch Gleichstrom kann. Warum dann nich auf 
Gleichstrom gehen und den Motor mit 'ner PWM + Halbbr"ucke + Drossel + 
Kondensator mit einer glatten Gleichspannung betreiben. Eine Zugeh-Angst 
zu 230V scheinst Du ja nicht zu haben. IR2184 + 2FETs als Halbbr"ucke 
passt in eine Streichholzschachtel.
Gast #3330204
Lesenswert?

Cooles Projekt!
> dass es über einen taster die Stichzahl der Nähmaschine erfasst
Heißt das, nur ein Impuls pro Stich?
Wäre es nicht viel besser, z.B. eine Reflexlichtschranke an den Speichen 
des Schwungrades anzubringen?

> Ich benutze für temporäre 230V-Lösungen gerne 1000g-Joghurteimerchen
> mit verschließbarem Deckel.
Die mag ich auch gern für alles Mögliche!
Superfos   UniPak 5131   1180 ml   Dm 133mm
oder die von Joker
Neuerdings habe ich auch die 2,5 und 5,0kg-Version im Einsatz.
http://www.yayla-online.de/pos-controller.php?get=page&page_id=16&art_id=336
für 2,99 im Kaufland
Gast #3330285
Lesenswert?

>Autor: eProfi (Gast)
>Reflexlichtschranke

Auf einem Foto sind auf dem Shwungrad angeklebte Papierstreifen zu 
erkennen. In Höhe des Shwungrads ist eine LDR an die Nähmaschine 
geklebt. Die auf dem Display ersichtliche Zahl 163136 ist die Anzahl der 
ADC-Messungen pro Secunde. Mittels einer Reflexlichtschranke könnte man 
auch die Nadelposition steuern. Der mechanische Taster war zunächst nur 
als Provisorium gedacht.

Aufgrund der Jahreszeit muss ih mich aus familiären Gründen leider erst 
um die Heizungssteuerung kümmern und habe für das Nähmaschinen-Projekt 
vorläufig keine Zeit mehr.
Gast #4336632
Lesenswert?

nach langer Zeit auf avr umgestellt und noch mal Änderungen an der 
Steuerung.

Mit dem Chinamodul läuft die Maschine jetzt schön langsam und 
gleichmäßig. Über eine ISR wird die Umlaufzeit gemessen und danach per 
PWM-LDR die Motorgeschwindigkeit nachgeregelt. Nur fast perfekt, die 
Erfassung der Umlaufgeschwindigkeit bereitet wegen der Prellung des 
Schalters noch Probleme.
Angehängte Dateien:
Gast #4336638
Lesenswert?

der Code:
1
#define k29_port     C//328
2
#define k29_int_port  1
3
#define k29_pin       3
4

5

6
#define k29_value_register PIN(k29_port)
7
#if k29_int_port==0
8
#define k29_vect   PCINT0_vect
9
#endif
10
#if k29_int_port==1
11
#define k29_vect   PCINT1_vect
12
#endif
13
#if k29_int_port==2
14
#define k29_vect   PCINT2_vect
15
#endif
16
#if k29_int_port==3
17
#define k29_vect   PCINT3_vect
18
#endif
19
#define PCMSK(x)    GLUE(PCMSK, x)
20
#define PCIE(x)      GLUE(PCIE, x)
21

22
v u8 k29_regelung_an;
23
u8 pwm = 0x00;
24
v u8 k29_pwm,k29_ct;
25

26

27
void k29_init(void){
28
DDR(k29_port)&=~(1<< k29_pin);
29
PORT(k29_port)|=((1<< k29_pin));
30
PCICR |= (1 << PCIE(k29_int_port));//PCIntControlRegister
31
PCMSK(k29_int_port) |= (1<< k29_pin);
32
sei();
33
}
34

35

36
ISR(k29_vect){
37
if(timer_10ms>3){//entprellung
38
//PCMSK(k29_int_port) &=~ (1<< k29_pin);//isr abschalten
39
cli();
40

41
u8 umlaufzeit = timer_10ms;
42
if (k29_regelung_an){
43

44

45
//umlaufzeit 10-15
46

47

48
if(umlaufzeit<10){OCR0A = 20;}//zu schnell OCR0A*3/4
49
if(umlaufzeit>15){OCR0A = 35;}//zu langsam OCR0A*4/3
50

51
}
52

53

54
lgi(3,1,umlaufzeit);lw("-");li(OCR0A);lw(" ");
55

56
sei();
57
timer_10ms=0;
58
}
59
}
60
//---------------------------------------------------------------
61

62

63

64

65
void sub_k29_an(void){
66

67
//startphase
68
k29_ct=0;
69
led1_on;
70
TCCR0A |= _BV(COM0A1) | _BV(WGM00) | _BV(WGM01);
71
OCR0A = 100;
72
_delay_ms(200);
73
OCR0A = 70;
74
_delay_ms(200);
75

76
OCR0A = k29_pwm;
77
_delay_ms(800);
78

79

80
//laufphase
81
k29_regelung_an=1;
82
while(tast0){
83
//OCR0A = 25;
84
//OCR0A = k29_pwm;
85
_delay_ms(1);
86
}
87
k29_regelung_an=0;
88

89

90
//abschaltphase
91
TCCR0A = 0;
92
PORTB&=~(1<<PD6);
93
pwm=0;
94
led1_off;
95

96

97
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren