Niet werkende eindstops Arduino uno

Arduino specifieke Software
Berichten: 3
Geregistreerd: 13 Aug 2016, 19:30

Niet werkende eindstops Arduino uno

Berichtdoor riebroek70 » 13 Okt 2016, 12:17

Beste leden,

Bij ons op de Modelbouw Vereniging Hilversum hebben wij een Proxxon MF70 CNC
machine gekocht, bij deze machine is geen software aanwezig.

Hiervoor hebben wij de Arduino uno + shield = drivers aangeschaft, als software
gebruiken wij Arduino GRBL-8cUno
Voor de aansturing van de machine de GRBL controller.

Na installatie van de software in de Arduino uno blijkt alles goed de te werken
behalve de endstops reageren niet, waardoor we de machine niet goed kunnen kalibreren.

Wie kent dit probleem en waar moet we de fout zoeken.

Alvast bedankt,

riebroek60

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Niet werkende eindstops Arduino uno

Berichtdoor nicoverduin » 13 Okt 2016, 13:22

De redenen waarom een eindstop het niet doet kunnen zijn:
a) verkeerd aangesloten
b) geen (interne/externe) pullup weerstanden
c) pin_map.h verkeerd gedefinieerd
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Niet werkende eindstops Arduino uno

Berichtdoor shooter » 13 Okt 2016, 17:54

even uitpuzelen of de endswitches naar 5 V of naar GNd gestuurd moeten worden.
verder uiteraard even naar nico opmerkingen.
paul deelen
shooter@home.nl

Berichten: 3
Geregistreerd: 13 Aug 2016, 19:30

Re: Niet werkende eindstops Arduino uno

Berichtdoor riebroek70 » 13 Okt 2016, 19:37

Hallo Nico,

Bedankt voor je snelle reactie,

Op de Arduino uno pinnen 9-10-11 5 Volt gemeten, na indrukken endstops (0V)

Bijgevoegd pin_map_h.

Misschien zijn hier de parameters niet juist ingevoerd.

Met vriendelijke groeten,

Marius
cpp code
/*
pin_map.h - Pin mapping configuration file
Part of Grbl

Copyright (c) 2013 Sungeun K. Jeon

Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
*/

/* The pin_map.h file serves as a central pin mapping settings file for different processor
types, i.e. AVR 328p or AVR Mega 2560. Grbl officially supports the Arduino Uno, but the
other supplied pin mappings are supplied by users, so your results may vary. */

#ifndef pin_map_h
#define pin_map_h

#ifdef PIN_MAP_ARDUINO_UNO // AVR 328p, Officially supported by Grbl.

// Serial port pins
#define SERIAL_RX USART_RX_vect
#define SERIAL_UDRE USART_UDRE_vect

// NOTE: All step bit and direction pins must be on the same port.
#define STEPPING_DDR DDRD
#define STEPPING_PORT PORTD
#define X_STEP_BIT 2 // Uno Digital Pin 2
#define Y_STEP_BIT 3 // Uno Digital Pin 3
#define Z_STEP_BIT 4 // Uno Digital Pin 4
#define X_DIRECTION_BIT 5 // Uno Digital Pin 5
#define Y_DIRECTION_BIT 6 // Uno Digital Pin 6
#define Z_DIRECTION_BIT 7 // Uno Digital Pin 7
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
#define STEPPING_MASK (STEP_MASK | DIRECTION_MASK) // All stepping-related bits (step/direction)

#define STEPPERS_DISABLE_DDR DDRB
#define STEPPERS_DISABLE_PORT PORTB
#define STEPPERS_DISABLE_BIT 8 // Uno Digital Pin 8 was 0
#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)

// NOTE: All limit bit pins must be on the same port
#define LIMIT_DDR DDRB
#define LIMIT_PIN PINB
#define LIMIT_PORT PORTB
#define X_LIMIT_BIT 9 // Uno Digital Pin 9 was 1
#define Y_LIMIT_BIT 10 // Uno Digital Pin 10 was 2
#define Z_LIMIT_BIT 11 // Uno Digital Pin 11 was 3
#define LIMIT_INT PCIE0 // Pin change interrupt enable pin
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // Pin change interrupt register
#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // All limit bits

#define SPINDLE_ENABLE_DDR DDRB
#define SPINDLE_ENABLE_PORT PORTB
#define SPINDLE_ENABLE_BIT 4 // Uno Digital Pin 12

#define SPINDLE_DIRECTION_DDR DDRB
#define SPINDLE_DIRECTION_PORT PORTB
#define SPINDLE_DIRECTION_BIT 13 // Uno Digital Pin 13 (NOTE: D13 can't be pulled-high input due to LED.)was 5

#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Uno Analog Pin 3

// NOTE: Uno analog pins 4 and 5 are reserved for an i2c interface, and may be installed at
// a later date if flash and memory space allows.
// #define ENABLE_M7 // Mist coolant disabled by default. Uncomment to enable.
#ifdef ENABLE_M7
#define COOLANT_MIST_DDR DDRC
#define COOLANT_MIST_PORT PORTC
#define COOLANT_MIST_BIT 4 // Uno Analog Pin 4
#endif

// NOTE: All pinouts pins must be on the same port
#define PINOUT_DDR DDRC
#define PINOUT_PIN PINC
#define PINOUT_PORT PORTC
#define PIN_RESET 0 // Uno Analog Pin 0
#define PIN_FEED_HOLD 1 // Uno Analog Pin 1
#define PIN_CYCLE_START 2 // Uno Analog Pin 2
#define PINOUT_INT PCIE1 // Pin change interrupt enable pin
#define PINOUT_INT_vect PCINT1_vect
#define PINOUT_PCMSK PCMSK1 // Pin change interrupt register
#define PINOUT_MASK ((1<<PIN_RESET)|(1<<PIN_FEED_HOLD)|(1<<PIN_CYCLE_START))

#endif


#ifdef PIN_MAP_ARDUINO_MEGA_2560 // Working @EliteEng

// Serial port pins
#define SERIAL_RX USART0_RX_vect
#define SERIAL_UDRE USART0_UDRE_vect

// Increase Buffers to make use of extra SRAM
#define RX_BUFFER_SIZE 256
#define TX_BUFFER_SIZE 128
#define BLOCK_BUFFER_SIZE 36
#define LINE_BUFFER_SIZE 100

// NOTE: All step bit and direction pins must be on the same port.
#define STEPPING_DDR DDRA
#define STEPPING_PORT PORTA
#define STEPPING_PIN PINA
#define X_STEP_BIT 2 // MEGA2560 Digital Pin 24
#define Y_STEP_BIT 3 // MEGA2560 Digital Pin 25
#define Z_STEP_BIT 4 // MEGA2560 Digital Pin 26
#define X_DIRECTION_BIT 5 // MEGA2560 Digital Pin 27
#define Y_DIRECTION_BIT 6 // MEGA2560 Digital Pin 28
#define Z_DIRECTION_BIT 7 // MEGA2560 Digital Pin 29
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
#define STEPPING_MASK (STEP_MASK | DIRECTION_MASK) // All stepping-related bits (step/direction)

#define STEPPERS_DISABLE_DDR DDRB
#define STEPPERS_DISABLE_PORT PORTB
#define STEPPERS_DISABLE_BIT 7 // MEGA2560 Digital Pin 13
#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)

// NOTE: All limit bit pins must be on the same port
#define LIMIT_DDR DDRB
#define LIMIT_PORT PORTB
#define LIMIT_PIN PINB
#define X_LIMIT_BIT 4 // MEGA2560 Digital Pin 10
#define Y_LIMIT_BIT 5 // MEGA2560 Digital Pin 11
#define Z_LIMIT_BIT 6 // MEGA2560 Digital Pin 12
#define LIMIT_INT PCIE0 // Pin change interrupt enable pin
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // Pin change interrupt register
#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // All limit bits

#define SPINDLE_ENABLE_DDR DDRC
#define SPINDLE_ENABLE_PORT PORTC
#define SPINDLE_ENABLE_BIT 2 // MEGA2560 Digital Pin 35

#define SPINDLE_DIRECTION_DDR DDRC
#define SPINDLE_DIRECTION_PORT PORTC
#define SPINDLE_DIRECTION_BIT 1 // MEGA2560 Digital Pin 36

#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 0 // MEGA2560 Digital Pin 37

// #define ENABLE_M7 // Mist coolant disabled by default. Uncomment to enable.
#ifdef ENABLE_M7
#define COOLANT_MIST_DDR DDRC
#define COOLANT_MIST_PORT PORTC
#define COOLANT_MIST_BIT 3 // MEGA2560 Digital Pin 34
#endif

// NOTE: All pinouts pins must be on the same port
#define PINOUT_DDR DDRK
#define PINOUT_PIN PINK
#define PINOUT_PORT PORTK
#define PIN_RESET 0 // MEGA2560 Analog Pin 8
#define PIN_FEED_HOLD 1 // MEGA2560 Analog Pin 9
#define PIN_CYCLE_START 2 // MEGA2560 Analog Pin 10
#define PINOUT_INT PCIE2 // Pin change interrupt enable pin
#define PINOUT_INT_vect PCINT2_vect
#define PINOUT_PCMSK PCMSK2 // Pin change interrupt register
#define PINOUT_MASK ((1<<PIN_RESET)|(1<<PIN_FEED_HOLD)|(1<<PIN_CYCLE_START))

#endif

/*
#ifdef PIN_MAP_CUSTOM_PROC
// For a custom pin map or different processor, copy and paste one of the default pin map
// settings above and modify it to your needs. Then, make sure the defined name is also
// changed in the config.h file.
#endif
*/

#endif

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Niet werkende eindstops Arduino uno

Berichtdoor nicoverduin » 13 Okt 2016, 19:56

Dat is goed. Tja dan weet ik het ook zo ff niet.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Niet werkende eindstops Arduino uno

Berichtdoor nicoverduin » 13 Okt 2016, 20:04

Ik zie wel hier en daar problemen met die limit switches. Heb je daar al eens naar gekeken?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Niet werkende eindstops Arduino uno

Berichtdoor Koepel » 13 Okt 2016, 20:41

Waar staat het origineel van het bestand ?

Voor de Uno worden blijkbaar de Arduino pin nummers gebruikt, en niet de bit nummers van de registers (die staan er in commentaar achter).
Maar de SPINDLE_ENABLE_BIT heeft opeens wel een register bit nummer in plaats van de Arduino pin.
Is dat de bedoeling ?
Misschien worden de X/Y/Z_LIMIT_BIT nummers ook als register bit nummers gebruikt.
Bij het Mega 2560 onderdeel zijn het wel allemaal register bit nummers.
Dus het is nogal erg onduidelijk.
En commentaar als "// Uno Digital Pin 9 was 1" maakt het nog meer onduidelijk.

PighiXXX - Uno : http://www.pighixxx.com/test/portfolio-items/uno/?portfolioID=314
Pinmapping : https://www.arduino.cc/en/Hacking/PinMapping168

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Niet werkende eindstops Arduino uno

Berichtdoor shooter » 14 Okt 2016, 11:55

er gaat wat mis inderdaad bij de pinnummers, want daar zit geen interupt op, zet deze terug naar 1,2,3 want dat zijn bitnummers en geen pinnummers.
ze gaan dan vanzelf naar 9,10,11 zie originele software van sungeun
paul deelen
shooter@home.nl

Berichten: 3
Geregistreerd: 13 Aug 2016, 19:30

Re: Niet werkende eindstops Arduino uno

Berichtdoor riebroek70 » 14 Okt 2016, 13:08

Bedankt voor jullie reactie,

Hierbij nog wat verdere informatie.

De site waar wij de software vandaan gehaald hebben is:

https://github.com/LETARTARE/Grbl-xx_wi ... ee/master/

Wij gebruiken het bestand: GRBL8cUno

De pinnen zullen we terugzetten naar de originele zetting en uitproberen.

riebroek70

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Niet werkende eindstops Arduino uno

Berichtdoor nicoverduin » 14 Okt 2016, 13:46

shooter schreef:er gaat wat mis inderdaad bij de pinnummers, want daar zit geen interupt op, zet deze terug naar 1,2,3 want dat zijn bitnummers en geen pinnummers.
ze gaan dan vanzelf naar 9,10,11 zie originele software van sungeun
Daar had ik dus ff overheen gelezen want in die Github stond het wel goed.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 104 gasten