Show Posts
|
|
Pages: [1] 2 3 ... 44
|
|
1
|
International / Software / Re: primi passi...
|
on: March 24, 2013, 06:38:39 am
|
Cominciamo col dire che l' analogRead() richiede solo un paramentro e cioè la porta di cui vuoi leggere il valore. Avrai di ritorno un valore compreso tra 0 e 1023. Le porte a cui fare riferimento per la lettura analogica sono appunto le analogiche: A0, A1, A2, An.. Quindi non puoi usare il pin 1 a questo scopo, sia perchè non è analogico ed in secondo luogo perchè insieme allo 0 è utilizzato per il caricamento dei tuoi sketch. Hai detto che vuoi attivare il pin 13 quando hai un valore alto su di un altro ingresso, quindi devi verificarne lo stato prima di agire: se pin analogico è alto: attiva pin 13 Che si traduce in: if(analogRead(Ax)==1023){ digitalWrite(13,1); } Gira un po' nel reference tra le voci digitalRead(), digitalWrite(), analogWrite() ed analogRead()
|
|
|
|
|
2
|
International / Hardware / Re: HC-SR04, Dubbi su misurazioni.
|
on: March 21, 2013, 04:50:44 pm
|
|
uhmm ma quindi non sai come misurare quest'angolo e chiedi se il sensore da te citato te lo possa tornare? comunque ipotizzando che la forma del robot sia quadrata potresti posizionare due sensori IR di prossimità ai due angoli, se misurano la stessa distanza sei parallelo al muro altrimenti dovresti riuscire a calcolare lo "sfasamento" in base a quale dei due rileva più o meno distanza!
|
|
|
|
|
4
|
International / Hardware / Re: RS485 per programmare ATmega
|
on: March 19, 2013, 11:55:33 am
|
No la compilazione la fa, il problema sta appunto nel sorgente in cui avrò sbagliato qualcosa!  2- Il problema sta nel fatto che sul convertitore non ho un "buco" che vada al reset o agli altri pin del ft232! (non si chiama pinout?)
|
|
|
|
|
5
|
International / Hardware / Re: RS485 per programmare ATmega
|
on: March 19, 2013, 08:46:07 am
|
Ho letto che su windows c'è il file omake.bat all'interno della cartella optiboot quindi si può fare, ma ho riscontrato un problema dovuto a qualche errore di sintassi all'interno di optiboot.c, allego anche lo screen. Tolgo un po' di roba a caso altrimenti non rientro con il numero di caratteri, le modifiche sono in maiuscolo:int main(void) {
// Adaboot no-wait mod ch = MCUSR; MCUSR = 0; if (!(ch & _BV(EXTRF))) appStart(); [b]DDRD |=B0000100; [/b] #if LED_START_FLASHES > 0 // Set up Timer 1 for timeout counter TCCR1B = _BV(CS12) | _BV(CS10); // div 1024 #endif
}
void putch(char ch) { [b]PORTD |=B0000100;[/b] #ifndef SOFT_UART while (!(UCSR0A & _BV(UDRE0))); UDR0 = ch; #else __asm__ __volatile__ ( " com %[ch]\n" // ones complement, carry set " sec\n" "1: brcc 2f\n" " cbi %[uartPort],%[uartBit]\n" " rjmp 3f\n" "2: sbi %[uartPort],%[uartBit]\n" " nop\n" "3: rcall uartDelay\n" " rcall uartDelay\n" " lsr %[ch]\n" " dec %[bitcnt]\n" " brne 1b\n" : : [bitcnt] "d" (10), [ch] "r" (ch), [uartPort] "I" (_SFR_IO_ADDR(UART_PORT)), [uartBit] "I" (UART_TX_BIT) : "r25" ); #endif [b]PORTD &=B1111011;[/b] }
uint8_t getch(void) { [b] PORTD &=B1111011;[/b] uint8_t ch;
#ifdef LED_DATA_FLASH #ifdef __AVR_ATmega8__ LED_PORT ^= _BV(LED); #else LED_PIN |= _BV(LED); #endif #endif
#ifdef SOFT_UART __asm__ __volatile__ ( "1: sbic %[uartPin],%[uartBit]\n" // Wait for start edge " rjmp 1b\n" " rcall uartDelay\n" // Get to middle of start bit "2: rcall uartDelay\n" // Wait 1 bit period " rcall uartDelay\n" // Wait 1 bit period " clc\n" " sbic %[uartPin],%[uartBit]\n" " sec\n" " dec %[bitCnt]\n" " breq 3f\n" " ror %[ch]\n" " rjmp 2b\n" "3:\n" : [ch] "=r" (ch) : [bitCnt] "d" (9), [uartPin] "I" (_SFR_IO_ADDR(UART_PIN)), [uartBit] "I" (UART_RX_BIT) : "r25" ); #else while(!(UCSR0A & _BV(RXC0))) ; if (!(UCSR0A & _BV(FE0))) { /* * A Framing Error indicates (probably) that something is talking * to us at the wrong bit rate. Assume that this is because it * expects to be talking to the application, and DON'T reset the * watchdog. This should cause the bootloader to abort and run * the application "soon", if it keeps happening. (Note that we * don't care that an invalid char is returned...) */ watchdogReset(); } Secondo problema: Il mio convertitore non ha un pinout del reset, quindi non posso mandarlo allo standalone.. mi sa che stiamo facendo un lavoro inutile!! http://www.sparkfun.com/datasheets/BreakoutBoards/USB-to-RS485-Breakout-v11.pdf
|
|
|
|
|
6
|
International / Hardware / Re: RS485 per programmare ATmega
|
on: March 18, 2013, 02:27:51 pm
|
|
Uhmm nell‘istruzione non mi riconosce atmega328.. io ho fatto una copia della csrtella optiboot, modificato il file optiboot.c, e posizionatomi col terminale sulla cartella optiboot. Ma quest‘operazione esattamente a cosa serve? Sarebbe una compulazione dei codici? Se lo faccio sul mio pc linux, posso poi semplicemente copiare su windowsla cartella optiboot ricavata e quindi fare il burning del bootloader?
|
|
|
|
|
11
|
International / Hardware / Re: Xbee collegato ad Arduino blocca l'esecuzione del programma.
|
on: March 10, 2013, 03:35:42 pm
|
|
L'xbee al pc com'è collegato? Tramite un arduino o tramite un convertitore? Se tramite un convertitore non hai problemi e basta aprire un monitor seriale come xctu e scriverci. Se tramite computer allora devi spostare i pin tx ed rx dell'xbee su altri che non siano lo 0 ed 1 dell'arduino, creando una seconda seriale con la NewSoftSerial.h, ma dubito questo discorso valga su di una shield
|
|
|
|
|
13
|
International / Software / Re: prova sketch antifurto
|
on: March 10, 2013, 03:13:43 pm
|
|
O forzi lo stato ad HIGH anche se il contatto è ancora aperto alla fine dell'invio del messaggio (funziona, ma meglio evitare), oppure dopo che mandi l'sms metti qualcosa come while(stato==LOW){} che non fa nulla attendendo che il contatto venga chiuso..
|
|
|
|
|
14
|
International / Hardware / Re: RS485 per programmare ATmega
|
on: March 10, 2013, 01:55:42 pm
|
Il PORTD &= l'ho messo per riportare a 0 il pin. Cioè, il pin deve stare sempre a 0 cioè in ascolto, nel momento in cui devo "parlare" metto il pin ad 1 e quando finisco lo riporto a 0 (fine della funzione put) Ah, e per flashare..? 
|
|
|
|
|
15
|
International / Hardware / Re: Xbee collegato ad Arduino blocca l'esecuzione del programma.
|
on: March 10, 2013, 01:52:15 pm
|
|
Come ha detto leo l'xbee con la shield probabilmente occupa i pin tx ed rx per comunicare con l'arduino, gli stessi che utilizza per comunicare anche con la usb. Ora, se tu hai un arduino che riceve i valori su quei pin dall'xbee non dovresti avere problemi, se invece nel frattempo apri anche il monitor seriale occupi lo stesso canale di comunicazione e non si va da nessuna parte..
|
|
|
|
|