Sida 44 av 45

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 11:51:54
av arvidb
Nu har jag slagits lite mer med displayen:
SAM_3313_display.jpg
Matningen till vänster och varvtalet till höger. Och så har jag slagit ihop de olika matningstabellerna i Clough42:s kod (metric feed, metric thread, inch feed, inch thread) till en enda tabell, som jag alltså "bläddrar" i med en rotationsenkoder:

Kod: Markera allt

const FEED_THREAD feed_table[] =
{
    { .display = {ZERO,  POINT, ZERO,  TWO  }, HMM_FRACTION_FEED( 2) },
    { .display = {ZERO,  POINT, ZERO,  FIVE }, HMM_FRACTION_FEED( 5) },
    { .display = {ZERO,  POINT, ZERO,  SEVEN}, HMM_FRACTION_FEED( 7) },
    { .display = {ZERO,  POINT, ONE,   ZERO }, HMM_FRACTION_FEED(10) },
    { .display = {ZERO,  POINT, ONE,   TWO  }, HMM_FRACTION_FEED(12) },
    { .display = {ZERO,  POINT, ONE,   FIVE }, HMM_FRACTION_FEED(15) },
    { .display = {ZERO,  POINT, ONE,   SEVEN}, HMM_FRACTION_FEED(17) },
    { .display = {ZERO,  POINT, TWO,   ZERO }, HMM_FRACTION_FEED(20) },  // M1F-M1.8F
    { .display = {ZERO,  POINT, TWO,   TWO  }, HMM_FRACTION_FEED(22) },
    { .display = {ZERO,  POINT, TWO,   FIVE }, HMM_FRACTION_FEED(25) },  // M1, M1.2, M2F
    { .display = {ZERO,  POINT, TWO,   SEVEN}, HMM_FRACTION_FEED(27) },
    { .display = {ZERO,  POINT, THREE, ZERO }, HMM_FRACTION_FEED(30) },  // M1.4

    /* Metric thread leads */
    { .display = {ZERO,  POINT, THREE, FIVE }, HMM_FRACTION( 35) },  // M1.6, M1.8, M2.5F, M3F
    { .display = {ZERO,  POINT, FOUR,  ZERO }, HMM_FRACTION( 40) },  // M2
    { .display = {ZERO,  POINT, FOUR,  FIVE }, HMM_FRACTION( 45) },  // M2.5
    { .display = {ZERO,  POINT, FIVE,  BLANK}, HMM_FRACTION( 50) },  // M3, M4F, M5F
    { .display = {ZERO,  POINT, SEVEN, BLANK}, HMM_FRACTION( 70) },  // M4
    { .display = {ZERO,  POINT, EIGHT, BLANK}, HMM_FRACTION( 80) },  // M5
    { .display = {ONE,   BLANK, BLANK, BLANK}, HMM_FRACTION(100) },  // M6, M8F, M10F
    { .display = {ONE,   POINT, TWO,   FIVE }, HMM_FRACTION(125) },  // M8, M10F, M12F
    // M10, M12F, M14F, M16F, M18F, M20F, M22F:
    { .display = {ONE,   POINT, FIVE,  BLANK}, HMM_FRACTION(150) },
    { .display = {ONE,   POINT, SEVEN, FIVE }, HMM_FRACTION(175) },  // M12
    // M14, M18F, M20F, M22F, M24F, M27F, M30F, M33F:
    { .display = {TWO,   BLANK, BLANK, BLANK}, HMM_FRACTION(200) },

    /* Imperial thread leads */
    { .display = {ONE,   FRAC,  EIGHT, ZERO }, TPI_FRACTION(800) },  // 1/80 in
    { .display = {ONE,   FRAC,  SEVEN, TWO  }, TPI_FRACTION(720) },  // 1/72 in
    { .display = {ONE,   FRAC,  SIX,   FOUR }, TPI_FRACTION(640) },  // 1/64 in
    { .display = {ONE,   FRAC,  FIVE,  SIX  }, TPI_FRACTION(560) },  // 1/56 in
    { .display = {ONE,   FRAC,  FOUR,  EIGHT}, TPI_FRACTION(480) },  // 1/48 in
    { .display = {ONE,   FRAC,  FOUR,  FOUR }, TPI_FRACTION(440) },  // 1/44 in
    { .display = {ONE,   FRAC,  FOUR,  ZERO }, TPI_FRACTION(400) },  // 1/40 in
    { .display = {ONE,   FRAC,  THREE, SIX  }, TPI_FRACTION(360) },  // 1/36 in
    { .display = {ONE,   FRAC,  THREE, TWO  }, TPI_FRACTION(320) },  // 1/32 in
    { .display = {ONE,   FRAC,  TWO,   EIGHT}, TPI_FRACTION(280) },  // 1/28 in
    { .display = {ONE,   FRAC,  TWO,   SEVEN}, TPI_FRACTION(270) },  // 1/27 in
    { .display = {ONE,   FRAC,  TWO,   SIX  }, TPI_FRACTION(260) },  // 1/26 in
    { .display = {ONE,   FRAC,  TWO,   FOUR }, TPI_FRACTION(240) },  // 1/24 in
    { .display = {ONE,   FRAC,  TWO,   ZERO }, TPI_FRACTION(200) },  // 1/20 in
    { .display = {ONE,   FRAC,  ONE,   NINE }, TPI_FRACTION(190) },  // 1/19 in
    { .display = {ONE,   FRAC,  ONE,   EIGHT}, TPI_FRACTION(180) },  // 1/18 in
    { .display = {ONE,   FRAC,  ONE,   SIX  }, TPI_FRACTION(160) },  // 1/16 in
    { .display = {ONE,   FRAC,  ONE,   FOUR }, TPI_FRACTION(140) },  // 1/14 in
    { .display = {ONE,   FRAC,  ONE,   THREE}, TPI_FRACTION(130) },  // 1/13 in
    { .display = {ONE,   FRAC,  ONE,   TWO  }, TPI_FRACTION(120) },  // 1/12 in
    { .display = {TWO,   FRAC,  TWO,   THREE}, TPI_FRACTION(115) },  // 2/23 in
    { .display = {ONE,   FRAC,  ONE,   ONE  }, TPI_FRACTION(110) },  // 1/11 in
    { .display = {ONE,   FRAC,  ONE,   ZERO }, TPI_FRACTION(100) },  // 1/10 in
    { .display = {BLANK, ONE,   FRAC,  NINE }, TPI_FRACTION( 90) },  // 1/9 in
    { .display = {BLANK, ONE,   FRAC,  EIGHT}, TPI_FRACTION( 80) },  // 1/8 in
};
(Här har jag också tagit bort .leds-fältet eftersom jag inte behöver det, och lagt till ett "FRAC"-tecken ("/") för att visa matningen i "delar av tum per varv" istället för inversen "gängor per tum".)

Jag gillar detta interface mycket bättre: det blir väldigt lätt att snabbt bläddra fram sökt matning istället för att hålla på och trycka på flera olika knappar.

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 12:29:04
av säter
metric thread
Har du tänkt dig att kunna gänga med den där elektriska konverteringen?

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 12:45:34
av arvidb
Ja, vitsen är att helt slippa "change gears" (vet inte vad det kan tänkas heta på svenska - alltså de kugghjul som man får byta manuellt annars för att ändra matning).

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 12:48:57
av säter
Hur löser du startpulsen?

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 12:55:18
av arvidb
Startpulsen? Hmm... skruven snurrar precis som om den var driven av kugghjulen, sen får man använda kopplingen för matningen som vanligt. Det finns alltså ingen "på/av"-funktion för drivningen av skruven.

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 12:57:05
av säter
Du ska backa spindeln som vanligt mellan skären alltså?

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 12:58:41
av arvidb
Japp.

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 13:02:31
av jihe
Finns det alltså ingen indexpuls i encodern så den vet var i varvet den är?

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 13:16:48
av arvidb
Jo, enkodern har indexpuls, men det finns ingen kod för att synka ledskruven till en spindel som redan snurrar i hög fart. Man behöver ju rampa upp ledskruvens varvtal (begränsa accelerationen) så att man inte tappar steg.

Sen kan ju inte styrkortet veta heller "vilken gänga man är på" om man kopplar ur ledskruven för att veva tillbaka släden och sen kopplar in den igen. Men använder man en sån där liten klocka som håller reda på vilken gänga man är på så kan man ju ibland, beroende på aktuell gängstigning, koppla ur och mata tillbaka precis som på vilken manuell svarv som helst.

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 14:02:49
av säter
Det blir spännande att se hur det fungerar.

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 14:05:36
av tecno
men det finns ingen kod för att synka ledskruven till en spindel
Detta medför att du är på riktigt djupt vatten om du inte kan synka.

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 14:09:03
av arvidb
Nädå tecno, allt är under kontroll. :) Läs tidigare inlägg i tråden/kolla filmerna som har länkats (Clough42) så ser du hur det funkar.

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 15:56:06
av tecno
Du säger det.

OM du skär en grövre gänga med stort ingrepp och spindeln saktar ner, sköts då kompensering i koden för att varva upp spindeln?

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 16:42:51
av säter
Det fungerar väl om matningen saktar ner i motsvarande takt?

Re: Metallsvarv - CJ18A-tråden

Postat: 12 mars 2021, 16:48:40
av tecno
Ja det bör det göra.