Pagina 1 di 1

Collegamento modulo HC-05 PC

MessaggioInviato: 5 dic 2016, 11:38
da Atomo
Salve,
ho collegato il modulo HC-05 alla RS232 del PC usando un circuito con un max232 (vedi allegato).

Voglio usare questo collegamento per configurare il modulo, quindi per inviare comandi AT...

Sul PC ho usato il programma HERCULES (vedi allegato) ma non ho nessuna risposta dal parte del modulo, per esempio inviando il comando AT dovrei avere come risposta OK...

Se collego il tutto a un microprocessore ATmega32 la trasmissione avviene correttamente e anche se

collego il modulo direttamente a un microprocessore ATmega32 dal quale invio i comandi al modulo tutto ok...

Perché con il PC no... Dove sbaglio?

Re: Collegamento modulo HC-05 PC

MessaggioInviato: 5 dic 2016, 12:31
da alev
Qualche volta, mi è capitato di smanettare con i modem tramite i comandi AT, ma la semplice istruzione AT non mi pare abbia alcun significato

Prova ad usare qualche istruzione più complessa, tipo AT&V

Per maggiori informazioni, guarda qui
https://en.wikipedia.org/wiki/Hayes_command_set

Re: Collegamento modulo HC-05 PC

MessaggioInviato: 5 dic 2016, 13:14
da Atomo
grazie per la risposta ma il solo comando AT è previsto dal set di istruzioni del modulo e deve rispondere OK ( faccio la stessa cosa tra microprocessore e modulo e funziona...)

Re: Collegamento modulo HC-05 PC

MessaggioInviato: 5 dic 2016, 14:51
da harpefalcata
Hai impostato come baud 38400 mentre, di default il modulo è impostato a 9600.

A meno che tu precedentemente non abbia cambiato la velocità, questo potrebbe essere un motivo.

Re: Collegamento modulo HC-05 PC

MessaggioInviato: 5 dic 2016, 15:08
da Atomo
il modulo quando è in modalità configurazione va a 38400 mentre il modalità normale e 9600...

infatti a 38400 con l'Atmega32 funziona...

Re: Collegamento modulo HC-05 PC

MessaggioInviato: 6 dic 2016, 13:41
da Atomo
Salve,

questo sta diventando un mistero ...

Voglio fare alcune precisazioni:

- Il modulo può funzionare a 5V perché ha un adattatore

- Con un dispositivo mobile, o collegato direttamente a un ATMEGA32 microprocessore, funziona.

- In Hercules CR/LF è abilitato

Ho realizzato un circuito con il max232 senza opto isolatori e tutto il resto (vedi allegato), ma ancora non funziona ...

Ripeto, collegando il PC direttamente ad un microprocessore ATmega32 attraverso il circuito MAX232, la trasmissione è riuscita, usando solo i pin TX, RX e GND.

Ho creato un'applicazione con Vb.net (vedi allegato) e ho provato il collegamento diretto al PC con un ATmega32 e funziona correttamente.

perché con HC-05 no?

Immagine

Codice applicazione Windows:
Codice: Seleziona tutto
Public Class Form1
    Public Event DataReceived As IO.Ports.SerialDataReceivedEventHandler
    Dim inputData As String = ""

    Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        inputData = SerialPort1.ReadLine
        Me.Invoke(New EventHandler(AddressOf DoUpdate))       
    End Sub

    'Show received data on UI controls and do something
    Public Sub DoUpdate()
        ListBox2.Items.Add(inputData)
        ListBox2.TopIndex = ListBox2.Items.Count - 1
    End Sub

    Private Sub btnSET_Click(sender As Object, e As EventArgs) Handles btnSET.Click
        If SerialPort1.IsOpen Then SerialPort1.Close()
        SerialPort1.PortName = UCase(txtCom.Text.Trim) '"COM1"

        SerialPort1.BaudRate = Val(cboBaund.Text) '38400

        SerialPort1.Parity = IO.Ports.Parity.None

        SerialPort1.DataBits = 8

        SerialPort1.StopBits = IO.Ports.StopBits.One

        SerialPort1.Handshake = IO.Ports.Handshake.None

        SerialPort1.RtsEnable = True

        SerialPort1.Open()
        SerialPort1.ReadTimeout = 10000
    End Sub

    Private Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
        If Not SerialPort1.IsOpen Then
            MsgBox("Porta COM non aperta!")
            Exit Sub
        End If
        'SerialPort1.Write(Trim(txtSend.Text) + vbCrLf)
        SerialPort1.WriteLine(txtSend.Text.Trim)
        ListBox1.Items.Add(txtSend.Text)
        ListBox1.TopIndex = ListBox1.Items.Count - 1
    End Sub
End Class