Show Posts
Pages: [1] 2 3 ... 5
1  International / Portugues / Re: ATMEGA328P problema a gravar via ArduinoSPI on: January 23, 2014, 10:15:43 am
vou testar agora
esta escrito no monitor serial
Atmega chip detector.
 e o led fica piscando fraco
o mini ta com um sensor ligado nele eu devo tirar este sensor pra fazer este teste ?
ha alguma forma de testar os pinos 10,11,12,13 do uno ?
o 13 eu ja testei com o exemplo do led
2  International / Portugues / Re: 74HC595 e transistores on: January 17, 2014, 07:41:44 am
ai não sei não conheço aquele transistor pois pode usar o mesmo projeto
o limite dele e de 500ma mais se trocar o 2 transistor por um bd135 ou tip31 ai da pra botar 1,5A
3  International / Portugues / Re: 74HC595 e transistores on: January 16, 2014, 09:06:52 am
o projete que te passei ali em cima ativa com 5ua
o consumo geral e o que o rele pede se ele e 250 ma vai consumir 250ma
com o projete que te passei da pra ativar ate reles de 20A de boa
4  International / Portugues / Re: 74HC595 e transistores on: January 15, 2014, 08:51:06 pm
pra acionar rele usa bc 548 e fácil e barato e se acha em qualquer lugar
5  International / Portugues / Re: ATMEGA328P problema a gravar via ArduinoSPI on: January 14, 2014, 08:06:27 pm
win8.1 x64
onde baixar o código pra ver se reconhece o chip?
ele reconhece mesmo no modo SPI?
6  International / Portugues / ATMEGA328P problema a gravar via ArduinoSPI on: January 12, 2014, 04:11:30 pm
com uma ajuda de uma pessoa no youtube eu fiz isso
Sim, é possível. Basicamente você vai carregar uma sketch "ArduinoISP" no uno. Depois você vai mudar toda a configuração da IDE para o Pro Mini; fazer a pinagem explicada abaixo e mandar um burn no bootloader "Aduino as ISP".
A pinagem basicamente é conectar o mesmo pino dos dois lados, com excessão do reset, que virá da porta 10 do Uno.
Uno -> Pro Mini
3.3v ->VCC
GND -> GND
Digital Pin 11(MOSI) -> pin 11 (MOSI)
Digital Pin 12(MISO) -> pin 12 (MISO)
Digital Pin 13(SCK) -> pin 13 (SCK)
Digital Pin 10 -> RST

depois
As ligações são as mesmas, o que você vai fazer diferente é escolher a opção diferente na IDE:
Arquivo>Carregar usando programador
File>Upload Using Programmer

na primeira vez foi so que esqueci de abaixar a velocidade da porta.
ai tentei novamente mais ta dando
avrdude: Recv: . [10]
#avrdude: Send: U [55] . [c0] . [11]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: t [74] . [00] t [74] F [46]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [c0] . [c0] . [c1] . [c1] . [c2] . [c2] . [c3] . [c3] . [c4] . [c4] . [c5] . [c5] . [c6] . [c6] . [c7] . [c7] . [c8] . [c8] . [c9] . [c9] . [ca] . [ca] . [cb] . [cb] . [cc] . [cc] . [cd] . [cd] . [ce] . [ce] . [cf] . [cf] . [d0] . [d0] . [d1] . [d1] . [d2] . [d2] . [d3] . [d3] . [d4] . [d4] . [d5] . [d5] . [d6] . [ac] . [d7] . [d7] . [d8] . [d8] . [d9] . [d9] . [da] . [da] . [db] . [db] . [dc] . [dc] . [dd] . [dd] . [de] . [de] . [df] . [df] . [e0] . [e0] . [e1] . [e1] . [e2] . [e2] . [e3] . [e3] . [e4] . [e4] . [e5] . [e5] . [e6] . [e6] . [e7] . [e7] . [e8] . [e8] . [e9] . [e9] . [ea] . [ea] . [eb] . [eb] . [ec] . [ec] . [ed] . [ed] . [ee] . [ee] . [ef] . [ef] . [e0] . [f0] . [f1] . [f1] . [f2] . [f2] . [f3] . [f3] . [f4] . [f4] . [f5] . [f5] . [f6] . [f6] . [f7] . [f7] . [f8] . [f8] . [f9] . [f9]
avrdude: Recv: . [10]
# | 100% 8.05s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x0c != 0xff
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.
como poderia resolver isso ?
7  International / Portugues / Re: 74HC595 e transistores on: January 12, 2014, 04:00:35 pm
ja comsegiu fazer
pra acionamento de rele pode usar este projeto aqui

e tão semsivel que ativa ate no dedo a corrente do rele não deve ser maior que 500ma
qualquer duvida posta ai
8  International / Portugues / Re: CP2102 USB to TTL Converter Module sem pino de reset on: December 09, 2013, 10:56:27 am
entao ele tem o reset o botao de reset ele e o pro mini
http://dx.com/p/diy-atmega328p-16mhz-electric-block-module-blue-172858
não pode ser 1uf 0,1 uf vai ser dificil de achar aqui
9  International / Portugues / CP2102 USB to TTL Converter Module sem pino de reset on: December 07, 2013, 01:21:48 pm
o meu conversor CP2102 USB to TTL e esse http://dx.com/p/cp2102-usb-to-ttl-converter-module-red-146141
ele não tem o pino reset.
como eu uso ele no pro mini mega328p ?
10  International / Portugues / Sensor BMP085 não encontrado, verifique as conexões on: December 07, 2013, 12:31:29 pm
fica dando este erro estou usndo este codigo
Code:
//Programa : Teste módulo pressão BMP085
//Autor : Adafruit
//Traducoes e comentários : Arduino e Cia
 
#include <Wire.h>
#include <Adafruit_BMP085.h>
 
// Conectar pino Vcc do BMP085 ao pino 3.3v do Arduino (NAO UTILIZAR 5.0V !)
// Conectar pino GND do módulo ao GND do Arduino
// Conectar o pino SCL do módulo ao pino analógico 5 do Arduino
// Conectar o pino SDA do módulo ao pino analógico 4 do Arduino
// Pino EOC (End of conversion) não utilizado
// Pino XCLR é um pino de reset, também não é utilizado
 
Adafruit_BMP085 bmp;
 
void setup() {
 Serial.begin(9600);
 if (!bmp.begin()) {
 Serial.println("Sensor BMP085 não encontrado, verifique as conexões !");
 while (1) {}
 }
}
 
void loop() {
 Serial.print("Temperatura = ");
 Serial.print(bmp.readTemperature());
 Serial.println(" *C");
 
 Serial.print("Pressao = ");
 Serial.print(bmp.readPressure());
 Serial.println(" Pa");
 
 // Calcula a altitude utilizando a pressao barometrica padrao
 // de 1013.25 milibar = 101325 Pascal
 Serial.print("Altitude = ");
 Serial.print(bmp.readAltitude());
 Serial.println(" metros");
 
// É possivel extrair uma medição mais precisa se você souber
 // a pressão ao nível do mar, que varia com o tempo/clima.
 // Se ela for de 1015 milibars ,é igual a 101500 Pascals.
 
 Serial.print("Altitude real = ");
 Serial.print(bmp.readAltitude(101500));
 Serial.println(" metros");
 
 Serial.println();
 delay(5000);
}
porem quando tiro a linha
if (!bmp.begin()) {
 Serial.println("Sensor BMP085 não encontrado, verifique as conexões !");
 while (1) {}
 }

ele funsiona por alguns segundos e trava
por que ele trava ?
11  International / Portugues / Re: codigo do barometro bmp85 on: October 15, 2013, 09:25:19 pm
o led do pino 13 esta ficando acesso e nada mais acontece
tem este codigo aqui tambem que esta dando erro
http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-breakout-de-sensor-de-press-o-barom

e com o codigo de exemplo
100001   10000100
Temp[C]=-0.0511111   1111100
100000   10000000
   Pressure [Pa]=0
100001   10000100
Temp[C]=0.0011111   1111100
100000   10000000
   Pressure [Pa]=16383
100001   10000100
Temp[C]=-0.0511111   1111100
100000   10000000
   Pressure [Pa]=0
100001   10000100
Temp[C]=-0.0511111   1111100
100000   10000000
   Pressure [Pa]=0
12  International / Portugues / Re: codigo do barometro bmp85 on: October 15, 2013, 08:18:15 pm
então eu fui trocando conforme ele vai informando ai os erros mudaram
não tem um outro programador pra Arduino que seja compatível com os arquivos .c e .h
ou com os termos antigos que eram usados antes da atualização ?
13  International / Portugues / codigo do barometro bmp85 on: October 15, 2013, 06:22:08 pm
o código que vem de exemplo não esta funcionando da a altitude e temperatura errada
e esse que vi na internet que parece ser o mais completo não esta copilando
Code:
/*Based largely on code by  Jim Lindblom

  Get pressure, altitude, and temperature from the BMP085.
  Serial.print it out at 9600 baud to serial monitor.
*/

#include <Wire.h>

#define BMP085_ADDRESS 0x77  // I2C address of BMP085

const unsigned char OSS = 0;  // Oversampling Setting

// Calibration values
int ac1;
int ac2;
int ac3;
unsigned int ac4;
unsigned int ac5;
unsigned int ac6;
int b1;
int b2;
int mb;
int mc;
int md;

// b5 is calculated in bmp085GetTemperature(...), this variable is also used in bmp085GetPressure(...)
// so ...Temperature(...) must be called before ...Pressure(...).
long b5;

void setup(){
  Serial.begin(9600);
  Wire.begin();

  bmp085Calibration();
}

void loop()

  float temperature = bmp085GetTemperature(bmp085ReadUT()); //MUST be called first
  float pressure = bmp085GetPressure(bmp085ReadUP());
  float atm = pressure / 101325; // "standard atmosphere"
  float altitude = calcAltitude(pressure); //Uncompensated caculation - in Meters

  selectLineOne();
  Serial.print("Baro: ");
  Serial.print(pressure/100, 1); // correccion +1 milibatr y un decimal
  Serial.print(" mB");

  selectLineTwo();
  Serial.print("Temp:   ");
  Serial.print(temperature - 2, 1 ); //correccion (-2) y un decimal
  Serial.print(" ");
  Serial.print((char)223); // simbolo de grado celsius
  Serial.print("C");
 


  delay(15000);
}
void selectLineOne(){  //puts the cursor at line 0 char 0.
   Serial.print(0xFE, BYTE);   //command flag
   Serial.print(128, BYTE);    //position
   delay(10);
}
void selectLineTwo(){  //puts the cursor at line 0 char 0.
   Serial.print(0xFE, BYTE);   //command flag
   Serial.print(192, BYTE);    //position
   delay(10);
}
void backlightOn(){  //turns on the backlight
    Serial.print(0x7C, BYTE);   //command flag for backlight stuff
    Serial.print(130, BYTE);    //NIVEL DE ILUMINACION AL MINIMO
   delay(10);
}

// Stores all of the bmp085's calibration values into global variables
// Calibration values are required to calculate temp and pressure
// This function should be called at the beginning of the program
void bmp085Calibration()
{
  ac1 = bmp085ReadInt(0xAA);
  ac2 = bmp085ReadInt(0xAC);
  ac3 = bmp085ReadInt(0xAE);
  ac4 = bmp085ReadInt(0xB0);
  ac5 = bmp085ReadInt(0xB2);
  ac6 = bmp085ReadInt(0xB4);
  b1 = bmp085ReadInt(0xB6);
  b2 = bmp085ReadInt(0xB8);
  mb = bmp085ReadInt(0xBA);
  mc = bmp085ReadInt(0xBC);
  md = bmp085ReadInt(0xBE);
}

// Calculate temperature in deg C
float bmp085GetTemperature(unsigned int ut){
  long x1, x2;

  x1 = (((long)ut - (long)ac6)*(long)ac5) >> 15;
  x2 = ((long)mc << 11)/(x1 + md);
  b5 = x1 + x2;

  float temp = ((b5 + 8)>>4);
  temp = temp /10 - 1.5;

  return temp;
}

// Calculate pressure given up
// calibration values must be known
// b5 is also required so bmp085GetTemperature(...) must be called first.
// Value returned will be pressure in units of Pa.
long bmp085GetPressure(unsigned long up){
  long x1, x2, x3, b3, b6, p;
  unsigned long b4, b7;

  b6 = b5 - 4000;
  // Calculate B3
  x1 = (b2 * (b6 * b6)>>12)>>11;
  x2 = (ac2 * b6)>>11;
  x3 = x1 + x2;
  b3 = (((((long)ac1)*4 + x3)<<OSS) + 2)>>2;

  // Calculate B4
  x1 = (ac3 * b6)>>13;
  x2 = (b1 * ((b6 * b6)>>12))>>16;
  x3 = ((x1 + x2) + 2)>>2;
  b4 = (ac4 * (unsigned long)(x3 + 32768))>>15;

  b7 = ((unsigned long)(up - b3) * (50000>>OSS));
  if (b7 < 0x80000000)
    p = (b7<<1)/b4;
  else
    p = (b7/b4)<<1;

  x1 = (p>>8) * (p>>8);
  x1 = (x1 * 3038)>>16;
  x2 = (-7357 * p)>>16;
  p += (x1 + x2 + 3791)>>4;

  long temp = p;
  return temp;
}

// Read 1 byte from the BMP085 at 'address'
char bmp085Read(unsigned char address)
{
  unsigned char data;

  Wire.beginTransmission(BMP085_ADDRESS);
  Wire.send(address);
  Wire.endTransmission();

  Wire.requestFrom(BMP085_ADDRESS, 1);
  while(!Wire.available())
    ;

  return Wire.receive();
}

// Read 2 bytes from the BMP085
// First byte will be from 'address'
// Second byte will be from 'address'+1
int bmp085ReadInt(unsigned char address)
{
  unsigned char msb, lsb;

  Wire.beginTransmission(BMP085_ADDRESS);
  Wire.send(address);
  Wire.endTransmission();

  Wire.requestFrom(BMP085_ADDRESS, 2);
  while(Wire.available()<2)
    ;
  msb = Wire.receive();
  lsb = Wire.receive();

  return (int) msb<<8 | lsb;
}

// Read the uncompensated temperature value
unsigned int bmp085ReadUT(){
  unsigned int ut;

  // Write 0x2E into Register 0xF4
  // This requests a temperature reading
  Wire.beginTransmission(BMP085_ADDRESS);
  Wire.send(0xF4);
  Wire.send(0x2E);
  Wire.endTransmission();

  // Wait at least 4.5ms
  delay(5);

  // Read two bytes from registers 0xF6 and 0xF7
  ut = bmp085ReadInt(0xF6);
  return ut;
}

// Read the uncompensated pressure value
unsigned long bmp085ReadUP(){

  unsigned char msb, lsb, xlsb;
  unsigned long up = 0;

  // Write 0x34+(OSS<<6) into register 0xF4
  // Request a pressure reading w/ oversampling setting
  Wire.beginTransmission(BMP085_ADDRESS);
  Wire.send(0xF4);
  Wire.send(0x34 + (OSS<<6));
  Wire.endTransmission();

  // Wait for conversion, delay time dependent on OSS
  delay(2 + (3<<OSS));

  // Read register 0xF6 (MSB), 0xF7 (LSB), and 0xF8 (XLSB)
  msb = bmp085Read(0xF6);
  lsb = bmp085Read(0xF7);
  xlsb = bmp085Read(0xF8);

  up = (((unsigned long) msb << 16) | ((unsigned long) lsb << 8) | (unsigned long) xlsb) >> (8-OSS);

  return up;
}

void writeRegister(int deviceAddress, byte address, byte val) {
    Wire.beginTransmission(deviceAddress); // start transmission to device
    Wire.send(address);       // send register address
    Wire.send(val);         // send value to write
    Wire.endTransmission();     // end transmission
}

int readRegister(int deviceAddress, byte address){

    int v;
    Wire.beginTransmission(deviceAddress);
    Wire.send(address); // register to read
    Wire.endTransmission();

    Wire.requestFrom(deviceAddress, 1); // read a byte

    while(!Wire.available()) {
        // waiting
    }

    v = Wire.receive();
    return v;
}

float calcAltitude(float pressure){

  float A = pressure/101325;
  float B = 1/5.25588;
  float C = pow(A,B);
  C = 1 - C;
  C = C /0.0000225577;

  return C;
}
alguém poderia me ajudar nisso ?
estou mandando ele pro uno
14  International / Portugues / Re: programando o Pro Mini atmega328 com uno on: October 15, 2013, 05:26:19 pm
deu falha
o led do atmega328 so fica piscando
quando manda gravar ambos piscam rapido
15  International / Portugues / Re: programando o Pro Mini atmega328 com uno on: October 09, 2013, 06:47:46 pm
então no tutorial e pra gravar o bootloader
mas o bootloader ja vem gravado pelo que eu antes eu quero e gravar e o programa
Pages: [1] 2 3 ... 5