Buongiorno a tutti, sono un neofita di arduino, soprattutto del mega 2560 e ho un quesito da porvi:
Avrei la necessità di porre contemporaneamente alto (o basso) più pin di uscita.
Avevo trovato a suo tempo una risposta per arduino uno qui: Arduino Reference - Arduino Reference in cui si utilizzavano comandi comodissimi come:
"DDRD = B11111110;"
"PORTD = B10101000;"
Mi chiedevo se esisteva qualcosa di analogo per l'Arduino Mega 2560
Grazie comunque a tutti
Fabrizio - yddu
Ti invitiamo a presentarti qui: Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! (Part 1) - Generale - Arduino Forum
e a leggere il regolamento: [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - Megatopic - Arduino Forum
- qui le pinout delle varie schede by xxxPighi: Pinout Diagram - Megatopic - Arduino Forum
- qui una serie di link utili: Link utili elettronica - Megatopic - Arduino Forum
Assolutamente si, quei comandi sono validi anche per ma Mega.
Però devi vedere (e confrontare) il datasheet delle due MCU perchè la Mega ha più "banchi".
Guarda il link delle pinout di Pighi (vedi i link sopra)
Lo sapevo che qualcosa mi perdevo: la presentazione! Speriamo sia valida anche quella "a posteriori"!!
Grazie per la risposta utilissima...allora mi dedicherò a vari test sul mio mega 2560 utilizzando gli stessi comandi dell'Arduino uno (ho visto che le porte del mega 2560 sono di più quindi dovrò andare a studiarmele bene)
Purtroppo il sito xxxPighi non funziona ma per fortuna il tuo link mi ha permesso di scaricare lo zip con tutti i pinout!!
Grazie ancora!
Fabrizio
Per lo zip bisogna ringraziare @Guglielmo.
Comunque pare che tra 2 giorni il sito di Pighi ritorna attivo.
Diamo a Cesare quel che è di cesare...quindi grazie a Guglielmo!!
fabry
i pin sono elencati dentro la libreria dell'ide
C:\Program Files (x86)\Arduino\hardware\arduino\variants\mega\pins_arduino.h
ti elenca il blocco di appartenenza e cosa possono fare
const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
// PORTLIST
// -------------------------------------------
PE , // PE 0 ** 0 ** USART0_RX
PE , // PE 1 ** 1 ** USART0_TX
PE , // PE 4 ** 2 ** PWM2
PE , // PE 5 ** 3 ** PWM3
PG , // PG 5 ** 4 ** PWM4
PE , // PE 3 ** 5 ** PWM5
PH , // PH 3 ** 6 ** PWM6
PH , // PH 4 ** 7 ** PWM7
PH , // PH 5 ** 8 ** PWM8
PH , // PH 6 ** 9 ** PWM9
PB , // PB 4 ** 10 ** PWM10
PB , // PB 5 ** 11 ** PWM11
PB , // PB 6 ** 12 ** PWM12
PB , // PB 7 ** 13 ** PWM13
PJ , // PJ 1 ** 14 ** USART3_TX
PJ , // PJ 0 ** 15 ** USART3_RX
PH , // PH 1 ** 16 ** USART2_TX
PH , // PH 0 ** 17 ** USART2_RX
PD , // PD 3 ** 18 ** USART1_TX
PD , // PD 2 ** 19 ** USART1_RX
PD , // PD 1 ** 20 ** I2C_SDA
PD , // PD 0 ** 21 ** I2C_SCL
PA , // PA 0 ** 22 ** D22
PA , // PA 1 ** 23 ** D23
PA , // PA 2 ** 24 ** D24
PA , // PA 3 ** 25 ** D25
PA , // PA 4 ** 26 ** D26
PA , // PA 5 ** 27 ** D27
PA , // PA 6 ** 28 ** D28
PA , // PA 7 ** 29 ** D29
PC , // PC 7 ** 30 ** D30
PC , // PC 6 ** 31 ** D31
PC , // PC 5 ** 32 ** D32
PC , // PC 4 ** 33 ** D33
PC , // PC 3 ** 34 ** D34
PC , // PC 2 ** 35 ** D35
PC , // PC 1 ** 36 ** D36
PC , // PC 0 ** 37 ** D37
PD , // PD 7 ** 38 ** D38
PG , // PG 2 ** 39 ** D39
PG , // PG 1 ** 40 ** D40
PG , // PG 0 ** 41 ** D41
PL , // PL 7 ** 42 ** D42
PL , // PL 6 ** 43 ** D43
PL , // PL 5 ** 44 ** D44
PL , // PL 4 ** 45 ** D45
PL , // PL 3 ** 46 ** D46
PL , // PL 2 ** 47 ** D47
PL , // PL 1 ** 48 ** D48
PL , // PL 0 ** 49 ** D49
PB , // PB 3 ** 50 ** SPI_MISO
PB , // PB 2 ** 51 ** SPI_MOSI
PB , // PB 1 ** 52 ** SPI_SCK
PB , // PB 0 ** 53 ** SPI_SS
PF , // PF 0 ** 54 ** A0
PF , // PF 1 ** 55 ** A1
PF , // PF 2 ** 56 ** A2
PF , // PF 3 ** 57 ** A3
PF , // PF 4 ** 58 ** A4
PF , // PF 5 ** 59 ** A5
PF , // PF 6 ** 60 ** A6
PF , // PF 7 ** 61 ** A7
PK , // PK 0 ** 62 ** A8
PK , // PK 1 ** 63 ** A9
PK , // PK 2 ** 64 ** A10
PK , // PK 3 ** 65 ** A11
PK , // PK 4 ** 66 ** A12
PK , // PK 5 ** 67 ** A13
PK , // PK 6 ** 68 ** A14
PK , // PK 7 ** 69 ** A15
};
yddu:
Mi chiedevo se esisteva qualcosa di analogo per l'Arduino Mega 2560
Tutti i microcontrollori mappano le porte logiche in registri interni, che hanno la nomenclatura DDRx, PORTx e PINx, dove "x" è una lettera che rappresenta la porta e dove con DDRx scegli la direzione dei pin (input/output), con PORTx imposti lo stato e con PINx leggi lo stato dei pin impostati come input. L'Atmega2560 usato nella scheda Arduino Mega2560 ha diverse porte, come puoi vedere dall'immagine allegata. Per capire come usare i registri per accedere alle porte ed ai singoli pin di esse ti consiglio la lettura di questo mio articolo.
Ancora grazie per la disponibilità (scusa se leggo solo ora...!)
